Files
magnus919_agent-skills/programming-principles/references/release-it.mini.md
T
Magnus HedemarkandGitHub 1037324c2a feat: add programming-principles skill (14 classic software books) (#92)
* feat: add programming-principles skill (14 classic software books)

- SKILL.md v0.2.0 with cross-cutting principles, task-to-book mapping,
  and code-assessment workflow
- 29 reference files (14 mini + 14 full + assessment methodology)
- Agent-agnostic frontmatter (compatibility field, no Hermes-specific metadata)
- Wire neckbeard routing table: code review/refactoring/quality assessment
- Regenerate Claude marketplace + Codex plugin manifests (97 skills)

Source: magnus919/programming-principles (standalone repo, v0.1.1).
Local copy was v0.2.0 with code-assessment-workflow.md not yet upstreamed.
Standalone repo will be archived with redirect after merge.

* fix: satisfy validator — frontmatter fields, skill README, catalog entry

- Strip version/author/source from frontmatter (unsupported fields)
- Move source attribution into metadata (string-to-string map)
- Add programming-principles/README.md with required headings
- Add catalog entry to root README.md (alphabetical position)

Validator passes locally: 107 canonical skills.
2026-07-21 17:29:56 -04:00

39 lines
2.4 KiB
Markdown

# OBEY Release It! by Michael T. Nygard
## When to use
Use for services, APIs, jobs, queues, deployment paths, control tooling, and critical flows that must survive production failures, overload, latency, bad data, hostile traffic, and operational mistakes.
## Primary bias to correct
A passing happy path is not production readiness. Design the failure semantics, demand limits, isolation, recovery path, and diagnosis surface before production defines them for you.
## Decision rules
- Assume every dependency, queue, cache, timeout, caller retry, and degraded state can fail in slow, partial, or prolonged ways.
- Prefer designs that fail visibly, limit blast radius, shed load, preserve core service, and make diagnosis possible.
- Treat deployment, operations, security, observability, rollback, and configuration validation as part of the system.
- Put explicit, intentional time limits on outbound calls and waits. No infinite waits.
- Retry only when safe for caller and provider. Bound count and total time. Use backoff or jitter.
- Isolate dependency failures with circuit breakers, fast failure, bulkheads, separate resource pools.
- Design overload behavior explicitly with back pressure, finite queues, demand limits, and load shedding.
- Budget scarce resources explicitly. Release them deterministically. Stream or paginate large payloads.
- Treat external input and responses as untrusted. Validate syntax, shape, business plausibility, semantics.
- Build observability into boundaries: structured context, correlation IDs, latency, throughput, error, saturation, queue depth, breaker state, dependency health.
- Make startup, health checks, migrations, and operational controls fail safely, auditable, stoppable, recoverable.
## Trigger rules
- When adding an outbound call, define timeout, retry eligibility, fallback, validation, and caller-survival behavior.
- When adding a queue, buffer, pool, cache, or background job, define capacity, full behavior, cleanup, and saturation monitoring.
- When a change touches deployment, config, startup, or migrations, make it idempotent and give it rollback.
- When designing API contracts, make failure modes explicit, distinguish retryable from non-retryable.
## Final checklist
- Explicit timeouts and no infinite waits?
- Retries safe, bounded, backed off?
- Failure isolated with breakers, bulkheads, load shedding?
- External input validated before trusted?
- Startups and migrations restartable and observable?