128 lines
7.7 KiB
Markdown
128 lines
7.7 KiB
Markdown
|
|
# os-sdlc — overview (launching point, v0.1)
|
||
|
|
|
||
|
|
Status: scaffold only. No skills/agents/hooks/scripts are implemented yet — this
|
||
|
|
document exists to anchor a follow-up brainstorming session, not to lock a design.
|
||
|
|
|
||
|
|
## Why this plugin exists
|
||
|
|
|
||
|
|
Matt Pocock (mattpocock/skills) shipped a v1.1 lifecycle update (2026-07-14) that
|
||
|
|
turned his skill set from a planning tool into a full grill → to-spec → to-tickets →
|
||
|
|
implement → code-review → commit pipeline. Separately, `~/dev/delta-refinery` runs a
|
||
|
|
heavier, DB-backed, multi-level pipeline (System Design → Behavioral Design →
|
||
|
|
Architecture → Slicer → Requirements) with named agent roles per level and a
|
||
|
|
Pre/Post/Handoff pattern for resumable multi-agent work.
|
||
|
|
|
||
|
|
`os-sdlc` is where cc-os adapts the good parts of both — Matt's lightweight linear
|
||
|
|
lifecycle and Delta Refinery's structured multi-level handoff discipline — into the
|
||
|
|
existing os-* family, wired to `os-backlog` (tickets/tracker) and `os-adr` (decision
|
||
|
|
gate), rather than reinventing either. See
|
||
|
|
[docs/adr/0037](../../docs/adr/0037-os-sdlc-lives-inside-cc-os-as-a-new-plugin-not-a-separate-cc-sdlc-marketplace.md)
|
||
|
|
for why this is a plugin inside cc-os rather than a separate `cc-sdlc` marketplace.
|
||
|
|
|
||
|
|
## Scope: not just skills
|
||
|
|
|
||
|
|
Unlike most current cc-os plugins, `os-sdlc` is expected to carry all of:
|
||
|
|
- **skills/** — the lifecycle verbs (`review` is the first: cherry-picks Matt's
|
||
|
|
standards-conformance + spec-fidelity + Fowler refactor-smell axes into a new
|
||
|
|
`/os-sdlc:review`, coexisting with the existing generic `/code-review`).
|
||
|
|
- **agents/** — named roles for pipeline stages, in the spirit of Delta Refinery's
|
||
|
|
per-level agent rosters, sized down to what a lightweight harness actually needs.
|
||
|
|
- **hooks/** — session/state wiring where a deterministic check beats a skill.
|
||
|
|
- **reference/** — general best-practice material by language/framework/pattern that
|
||
|
|
pipeline stages can pull from (not client- or project-specific — that stays in the
|
||
|
|
vault).
|
||
|
|
- **scripts/** — mechanical CLI tooling supporting the above (candidate for the
|
||
|
|
ADR-0025 lib/+bin/ Ruby structure once real logic exists).
|
||
|
|
|
||
|
|
## Working philosophy this plugin should encode
|
||
|
|
|
||
|
|
Carried over verbatim from the brainstorming that led here, because it's the design
|
||
|
|
target, not just a preference:
|
||
|
|
|
||
|
|
- **Draft-then-refine over get-it-perfect-up-front.** Autoresearch-style loop: draft
|
||
|
|
an idea, implement a first pass, audit process and outcome, hypothesize an
|
||
|
|
improvement, iterate. Applies to both the artifacts os-sdlc produces (specs,
|
||
|
|
tickets, code) and to os-sdlc's own design.
|
||
|
|
- **Goal is throughput at trust, not just automation.** The target is being able to
|
||
|
|
automate large chunks of the dev process for big upcoming projects — "move at the
|
||
|
|
speed of thought" — which requires the pipeline to be trustworthy enough at each
|
||
|
|
stage that skipping human review of that stage is safe, not just fast.
|
||
|
|
- **Composability with the rest of cc-os is a hard constraint**, not a nice-to-have:
|
||
|
|
os-sdlc must interoperate with `os-backlog` (tickets), `os-adr` (decisions),
|
||
|
|
`os-vault` (cross-project knowledge) — ADR-023's "os-* plugins cooperate" bet
|
||
|
|
applies here directly.
|
||
|
|
|
||
|
|
## Known inputs for the follow-up brainstorming session
|
||
|
|
|
||
|
|
- Matt Pocock v1.1 lifecycle notes: `docs/matt-pocock-skills-v1.1-notes.md`.
|
||
|
|
- Delta Refinery structure (facts gathered this session, not yet written up as a
|
||
|
|
standalone doc): 5-level `PipelineRunner`/`PipelineOrchestrator`, per-level agent
|
||
|
|
rosters under `.claude/agents/{prd,functional_spec,technical_spec,requirements}/`,
|
||
|
|
intra-level in-memory `Handoff` + inter-level DB-persisted `Artifact#structured_content`
|
||
|
|
for resumability, two composition roots (`HeadwatersComposition` full pipeline vs.
|
||
|
|
`ProductionComposition` requirement-level-only).
|
||
|
|
- Existing cc-os pieces this must integrate with: `os-backlog` (capture/list/route),
|
||
|
|
`os-adr` (find/create/init/migrate), `os-vault` (query/write/onboard-project).
|
||
|
|
- Open question carried into the brainstorm: how much of Delta Refinery's
|
||
|
|
resumable-handoff machinery is worth adopting now vs. deferred until a concrete
|
||
|
|
multi-session pipeline actually needs it (avoid building it ahead of a real need).
|
||
|
|
|
||
|
|
## ADW taxonomy input (2026-07-14 session)
|
||
|
|
|
||
|
|
Cross-project methodology reference, not repo-specific: see the vault note
|
||
|
|
`agentic-sdlc-ai-developer-workflow-taxonomy.md` (SecondBrain) — a taxonomy of AI Developer
|
||
|
|
Workflow (ADW) structures from IndyDevDan's "Forget Loop Engineering" video (mermaid diagrams
|
||
|
|
included, with `[dan]`/`[jrs]` provenance tags separating his claims from cc-os-specific
|
||
|
|
extrapolation). Read it before designing os-sdlc's pipeline shape; the plan below is the
|
||
|
|
repo-specific slice of that broader taxonomy.
|
||
|
|
|
||
|
|
Three actors of value creation apply directly to os-sdlc's component design: **code**
|
||
|
|
(deterministic, free, most reliable — lint/format/test/CI/ticket-state transitions),
|
||
|
|
**engineer** (the two fixed constraints: prompting/planning at the start, reviewing at the
|
||
|
|
end), **agent** (judgment work: planning, building, scouting). Every os-sdlc pipeline stage
|
||
|
|
should be built by first asking which of the three actors it actually needs — don't default
|
||
|
|
to "agent" for something code or a human gate should own.
|
||
|
|
|
||
|
|
## First-iteration build plan: a single tracer-bullet ADW
|
||
|
|
|
||
|
|
Per the vault note's escalation ladder, and per standing tracer-bullet convention, the first
|
||
|
|
build target is the smallest complete loop, not the software factory. Scope:
|
||
|
|
|
||
|
|
**One worktree, one pipeline**: `ticket intake → build agent → lint/format/test (hooks) →
|
||
|
|
engineer review → ship`. Sandboxes, N-way worktree fan-out, the hotfix ADW, and the software
|
||
|
|
factory router are explicitly deferred — documented in the vault note, not built here.
|
||
|
|
|
||
|
|
Step by step:
|
||
|
|
|
||
|
|
1. **Ticket intake** (code, not agent). Reuse `os-backlog` as the trigger: a card moving to
|
||
|
|
`Doing` (or a linked Forgejo issue via `/to-tickets`) is the pipeline's entry point. No new
|
||
|
|
ticketing system — os-sdlc consumes os-backlog's state, per ADR-0037's composability
|
||
|
|
constraint.
|
||
|
|
2. **Build agent** (agent, minimal tools). New `os-sdlc` agent definition: system prompt scoped
|
||
|
|
to "write/modify code to satisfy the spec," tool grants limited to `Read`/`Write`(/`Edit`) —
|
||
|
|
no `Bash`. It cannot run tests or linting itself; it only ever sees pass/fail feedback handed
|
||
|
|
back to it.
|
||
|
|
3. **Lint/format/test gate** (code, via hooks — delta-refinery-style Pre/Post/Handoff, not a
|
||
|
|
skill-embedded step). A `PostToolUse`-style hook (or a small script the pipeline invokes
|
||
|
|
between agent turns) runs the project's lint/format/test commands after each build-agent
|
||
|
|
turn. On failure, the failing output is fed back into the *same* build-agent session as the
|
||
|
|
next turn's context (per Dan's separation-of-concerns principle). On pass, advance.
|
||
|
|
4. **Engineer review** (human gate). Standard PR/diff review — no change from how review works
|
||
|
|
today; the pipeline's job is to get a clean, tested diff in front of the engineer, not to
|
||
|
|
replace this gate.
|
||
|
|
5. **Ship** (code). Merge + whatever this repo's existing deploy path is — os-sdlc does not
|
||
|
|
own deploy; it hands off a mergeable, reviewed change.
|
||
|
|
|
||
|
|
Each step above should be walked by hand first (per Dan's second tip) before being wired into
|
||
|
|
skills/hooks/agents — run the lint/test loop manually against a real small change, confirm the
|
||
|
|
feedback-loop shape works, *then* automate it.
|
||
|
|
|
||
|
|
## Not decided yet (do not assume in implementation)
|
||
|
|
|
||
|
|
- Which of Matt's skills get adopted as-is vs. adapted vs. skipped, beyond `review`.
|
||
|
|
- Whether `implement` is adopted as a thin router as-is, or redesigned as a
|
||
|
|
Delta-Refinery-style level with named sub-roles.
|
||
|
|
- Whether `wayfinder` (multi-issue planning for big-plan decomposition) subsumes or
|
||
|
|
sits alongside a Delta-Refinery-style level structure.
|
||
|
|
- Any hook or agent definitions — none exist yet.
|