os-sdlc: spec-and-ticket-layer grilled — wayfinder subsumes levels, templates fixed
Resolves all three open questions (2026-07-17 grill): wayfinder subsumes DeltaRefinery-style levels; adopt verdicts (adapt wayfinder/to-spec/to-tickets to the os-backlog substrate, skip grill-with-docs in favor of the global grilling skill); lean four-section spec template + given/when/then ticket template sized to one /implement run. Scope note: to-prd coexists — os-sdlc is software-development specific (Forgejo #81 closed). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PG3SoJqPk1xCyQrhVZZHFf
This commit is contained in:
parent
4fac93be78
commit
19846f0400
|
|
@ -57,7 +57,7 @@ graph TD
|
||||||
|
|
||||||
| Node | Status | One-liner |
|
| Node | Status | One-liner |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| [spec-and-ticket-layer](reference/spec-and-ticket-layer.md) | settled direction | Git issues (Forgejo/GitHub per tracker key) are the durable spec layer; Pocock verbs map onto it |
|
| [spec-and-ticket-layer](reference/spec-and-ticket-layer.md) | settled (grilled 2026-07-17) | Git issues are the durable spec layer; wayfinder subsumes levels; adapt wayfinder/to-spec/to-tickets, reuse global grilling; spec + ticket templates fixed |
|
||||||
| [pipeline-stages](reference/pipeline-stages.md) | direction | The v1 tracer bullet: `/implement` → test-writer → red-assert → programmer → green-assert → reviewer → human merge |
|
| [pipeline-stages](reference/pipeline-stages.md) | direction | The v1 tracer bullet: `/implement` → test-writer → red-assert → programmer → green-assert → reviewer → human merge |
|
||||||
| [deterministic-gates](reference/deterministic-gates.md) | settled | Hooks, not agents, run tests/lint; red/green asserted mechanically; green command pluggable per project |
|
| [deterministic-gates](reference/deterministic-gates.md) | settled | Hooks, not agents, run tests/lint; red/green asserted mechanically; green command pluggable per project |
|
||||||
| [agent-design-principles](reference/agent-design-principles.md) | settled | Single job, minimal tool allowlist (programmer: no Bash), settled facts in via prompt, minimum out via return format |
|
| [agent-design-principles](reference/agent-design-principles.md) | settled | Single job, minimal tool allowlist (programmer: no Bash), settled facts in via prompt, minimum out via return format |
|
||||||
|
|
@ -97,8 +97,8 @@ trusted. Open items live per-node in each doc's "Open questions" — this file
|
||||||
carries none.
|
carries none.
|
||||||
|
|
||||||
**Grill queue** (decided 2026-07-16): the critical path is
|
**Grill queue** (decided 2026-07-16): the critical path is
|
||||||
[spec-and-ticket-layer](reference/spec-and-ticket-layer.md) →
|
[spec-and-ticket-layer](reference/spec-and-ticket-layer.md) (✅ grilled 2026-07-17) →
|
||||||
[pipeline-stages](reference/pipeline-stages.md) — grill in that order first.
|
[pipeline-stages](reference/pipeline-stages.md) — next up.
|
||||||
Then [never-ask-twice](reference/never-ask-twice.md) +
|
Then [never-ask-twice](reference/never-ask-twice.md) +
|
||||||
[self-improvement-loops](reference/self-improvement-loops.md) (can run in
|
[self-improvement-loops](reference/self-improvement-loops.md) (can run in
|
||||||
parallel with pipeline build; NAT's formalization ADR is independent), then
|
parallel with pipeline build; NAT's formalization ADR is independent), then
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# spec and ticket layer
|
# spec and ticket layer
|
||||||
|
|
||||||
_Status: settled direction — as of 2026-07-16_
|
_Status: settled — grilled 2026-07-17 (open questions resolved)_
|
||||||
_Connects to: [pipeline-stages](pipeline-stages.md), [worktree-parallelism](worktree-parallelism.md), [never-ask-twice](never-ask-twice.md), [overview](../OVERVIEW.md)_
|
_Connects to: [pipeline-stages](pipeline-stages.md), [worktree-parallelism](worktree-parallelism.md), [never-ask-twice](never-ask-twice.md), [overview](../OVERVIEW.md)_
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
@ -35,18 +35,63 @@ issue-tracker state for os-sdlc.
|
||||||
- The tracker is the single source of truth for spec *and* ticket state — no shadow status
|
- The tracker is the single source of truth for spec *and* ticket state — no shadow status
|
||||||
file. Stage reports (pipeline-stages) update the issue via comments/labels rather than a
|
file. Stage reports (pipeline-stages) update the issue via comments/labels rather than a
|
||||||
separate os-sdlc-owned record.
|
separate os-sdlc-owned record.
|
||||||
- Spec and ticket content structure is intentionally not fixed yet (see Open questions) —
|
## Grilled decisions (2026-07-17)
|
||||||
the mapping above fixes *where* things live and *what stage produces them*, not their
|
|
||||||
internal template.
|
|
||||||
|
|
||||||
## Open questions
|
- **Wayfinder subsumes levels.** No DeltaRefinery-style explicit level hierarchy. A big
|
||||||
|
plan becomes a wayfinder decision map on the issue tracker: typed sub-issues
|
||||||
|
(research / grilling / prototype / task), blocking relationships between them, each
|
||||||
|
sized to one agent session; when all close, the map feeds `to-spec`. Blocking edges
|
||||||
|
express what levels used to; this drops the rigidity the DeltaRefinery retrospective
|
||||||
|
flagged as a failure mode.
|
||||||
|
- **Skill adoption verdicts:**
|
||||||
|
- **wayfinder — adapt** (keep shape, swap substrate): concept intact — decision map as
|
||||||
|
issues, four ticket types, blocking edges, one-session sizing — but every tracker
|
||||||
|
interaction goes through os-backlog's `issue-create`/`issues` CLI + tracker key, with
|
||||||
|
the cc-os label taxonomy. Verbatim was never on the table: composability with
|
||||||
|
os-backlog is a hard constraint (ADR-0037), and Pocock's prose bakes in
|
||||||
|
GitHub-specific plumbing (sub-issues, `gh` syntax) Forgejo can't honor.
|
||||||
|
- **grill-with-docs — skip; reuse the global `grilling` skill**, both invoked directly
|
||||||
|
for small plans and from wayfinder's grilling-type tickets. One grill implementation,
|
||||||
|
no drift between copies; the never-ask-twice lookup gate wraps it in one place.
|
||||||
|
Accepted cost: os-sdlc depends on a personally-installed global skill — fold a copy
|
||||||
|
into the plugin only if os-sdlc ever ships beyond the user's machines.
|
||||||
|
- **to-spec / to-tickets — adapt both**: Pocock's semantics (spec = destination,
|
||||||
|
tickets = journey) on the os-backlog substrate; all writes via `issue-create` with
|
||||||
|
the tracker key; spec→ticket linkage uses plain issue references that work on both
|
||||||
|
Forgejo and GitHub; templates are ours (below). Scope note (2026-07-17): os-sdlc's
|
||||||
|
`to-spec` does NOT replace the globally installed `to-prd` — os-sdlc is
|
||||||
|
software-development specific, while `to-prd` remains the general-purpose PRD
|
||||||
|
publisher for non-SDLC work. They coexist; the namespaced invocation
|
||||||
|
(`/os-sdlc:to-spec`) keeps them unambiguous.
|
||||||
|
- **Spec issue template — lean four-section.** Ticket-level detail lives in tickets, not
|
||||||
|
the spec, so the spec stays stable while tickets churn. Labels: `spec` + priority;
|
||||||
|
tickets reference it as `spec: #NN`.
|
||||||
|
|
||||||
- Which Pocock skills (wayfinder, grill-with-docs, to-spec, to-tickets) are adopted
|
```md
|
||||||
near-verbatim vs. adapted for the git-issues substrate vs. skipped entirely.
|
# <feature name> [spec]
|
||||||
- Whether wayfinder subsumes or sits alongside a DeltaRefinery-style level structure
|
|
||||||
(DeltaRefinery decomposed work into explicit levels; Pocock's wayfinder is looser).
|
## Destination — what exists when done, 3-6 sentences, observable behavior
|
||||||
- Concrete spec issue template (sections, required fields) and ticket issue template
|
## Settled decisions — every choice an implementer must not relitigate (ADR-NNNN refs)
|
||||||
(acceptance criteria shape, tracer-bullet slice size).
|
## Out of scope — deferred items + where they went (horizon doc, issue #NN)
|
||||||
|
## Sources — wayfinder map root #NN, grill transcripts, vault notes, ADRs
|
||||||
|
```
|
||||||
|
- **Ticket issue template — testable assertions, one-run slice.** Acceptance criteria are
|
||||||
|
observable given/when/then assertions the test-writer stage converts to tests
|
||||||
|
near-mechanically — batched at one-ticket grain (the DeltaRefinery lesson: drop
|
||||||
|
per-example granularity, keep mechanical verification). Sizing rule: a thin end-to-end
|
||||||
|
slice fitting one `/implement` run (one worktree, one branch, one review); if the
|
||||||
|
criteria won't fit in 3–7 assertions, split the ticket.
|
||||||
|
|
||||||
|
```md
|
||||||
|
# <slice name> [ticket]
|
||||||
|
spec: #NN
|
||||||
|
|
||||||
|
## Slice — one sentence: the thin end-to-end path added; demoable alone
|
||||||
|
## Acceptance criteria — 3-7 "Given <state>, when <action>, then <observable result>"
|
||||||
|
checkboxes, each testable without human judgment
|
||||||
|
## Non-goals — adjacent behavior deliberately left to #NN
|
||||||
|
## Notes for implementer (optional) — known seams, files, gotchas
|
||||||
|
```
|
||||||
|
|
||||||
## Sources
|
## Sources
|
||||||
|
|
||||||
|
|
@ -55,4 +100,4 @@ issue-tracker state for os-sdlc.
|
||||||
- `plugins/os-sdlc/OVERVIEW.md`
|
- `plugins/os-sdlc/OVERVIEW.md`
|
||||||
- SecondBrain vault: `matt-pocock-skills-v1-1-changes.md`
|
- SecondBrain vault: `matt-pocock-skills-v1-1-changes.md`
|
||||||
- `plugins/os-backlog/` (tracker key, `issue-create`/`issues` CLI)
|
- `plugins/os-backlog/` (tracker key, `issue-create`/`issues` CLI)
|
||||||
- 2026-07-16 design session (this doc's origin)
|
- 2026-07-16 design session (this doc's origin); 2026-07-17 grill session (decisions above)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue