Skip to content

Design management, closer to the original design: the Pack design page, entry lines, recipe parameters, design recipes, and v0 captured and ruled - #30

Merged
darko-mijic merged 58 commits into
mainfrom
feature/design-management-v0
Oct 12, 2026
Merged

darko-mijic merged 58 commits into
mainfrom
feature/design-management-v0

Conversation

@darko-mijic

@darko-mijic darko-mijic commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

This PR executes plan 41 and folds the owner's rulings on everything it left open. Plan 41 made the Protocol a better place to design ahead of code: a Pack page that shows where a capability's design stands, the graph's record of where each design entry is written, recipes that take parameters as data and ship as files, four recipes for design work, and the original design's unbuilt promises captured as Specs. The owner then ruled every open item. The fold made the corpus agree: the drift alarm is empty, the captures' questions are answered, three decision records that explained nothing are deleted, and the Spec Studio has a ruled first phase, drafted as plan 42.

Why

The owner's direction: take the Protocol as far as it goes toward complex, iterative design work, closer to the original design (docs/lineage/v0-design/), and improve self-hosting. Three inputs set the scope.

  • The first adopter. libar-dev/libar-platform designs whole capabilities as Packs before their code exists. To do it, it hand-built about 2,400 lines of tooling: a 1,201-line Pack page script that walks the readiness floor, reads what a Pack rests on, joins open questions and re-parses carriers for entry lines, plus scripts that rewrite and scrape recipe bodies.
  • The original design. A claim-by-claim map of the nine v0 chapters found what matters most for design work and had no home: a designed stage, components declared before code, source lines for entries, design comparison between commits, context bundles, example-space coverage, corpus rules, a decision index.
  • The Protocol's own corpus. It used its own design features thinly: two Packs, 17 unkeyed open questions, docs still teaching superseded rulings, deferral triggers living in plan prose.

The research is in .omo/evidence/plan-41/research/.

What is new

The Pack page shows the Pack's design

Per member in authored order: the stated rung, the floor reached, and the rung above the stated one with the clause that holds the member below it, or nothing blocks when only the author's statement is missing (never an approval). Then the design columns, open and blocking questions with their entry addresses and line links, the decisions that shape each member, and the code that realizes or references it, with each component's layer and context. Below the table: the Specs the Pack rests on, those that rest on it, and apart from them the outside Specs that verify or supersede a member. Read pack:design-management-v1's page first; its Spec is spec:consumers.design-review.pack-design-page. The Spec page, index, census, Mermaid and Gherkin stay frozen; every Design Review link target is now encoded.

One assembly on the reader

The page renders what the reader computes, so a page, a recipe and an adopter's script read one answer. packContext carries the Pack design; specContext carries the same design columns for any Spec, and the build backlog (recipe 1) shows them. No reader method was added. spec:consumers.pack-design.

Entry lines, recipe parameters, design recipes, provenance

  • A location table beside the nodes gives the line of every keyed Design and UI entry and every open question; nodes stay line-free. Graph schema 0.9.0. spec:extraction.entry-locations.
  • sdp q --params JSON or --params @file passes a recipe its subject as data; the build ships every body as dist/recipes/NN-slug.js. spec:consumers.agent-surface.recipe-parameters.
  • The catalog grows to 32: Pack design (29), design-change impact (30), the decision register with supersession and narrowing both ways (31), and architecture crossings (32).
  • sdp --version names the package version and the build's commit; neither enters the graph.

The original design, captured and now ruled

Fifteen Specs hold what v0 promised and the Protocol has not built: design maturity, planned architecture, open-question fields, rule keys, relation reasons, design diff, context bundles, review perspectives, change proposals, the superseded-decision signal, architecture constraints, corpus rules, run evidence, example-space coverage, and plan 35's deferred projections. The owner ruled their questions, so most now state defined and are ready to build when chosen.

What the owner ruled

On a 49-card ruling sheet, then in a second round on three holds the fold surfaced. Each answer lives in its carrying Spec.

Ruling Carried by
The Pack design page narrows the projections freeze for the Pack page (MD-39, ratified) spec:decisions.pack-design-page
Prose mentions and entry addresses are checked (MD-40, ratified) spec:decisions.checked-mentions
supersedes replaces a whole decision; a decision that narrows one part refines it; a replaced record that explains nothing a reader needs is deleted, and git keeps it spec:validation.superseded-decision-signal, spec:decisions.planning-truths-placement (MD-33)
MD-30, MD-34 and MD-35 deleted; what stayed in force moved into MD-38 spec:decisions.architectural-annotation
No designed rung: what design a Spec carries is derived from its design columns, never stated spec:model.design-maturity
A component designed before code is a Spec its component: anchor later satisfies spec:model.planned-architecture
An arc is a Pack named for the capability it designs spec:consumers.graph-first-planning
Corpus rules run only from sdp validate --rules PATH, report outside the two families, and an error exits nonzero spec:validation.corpus-rules
A context bundle is a recipe with a hard character budget and a fixed cut order; an unfittable scope returns a budget-exceeded result as data spec:consumers.context-bundle
The Spec Studio's phase 0 is a read-only static root in the open-source package, beside the Markdown Design Review, measured by the adopter's five reader tasks spec:consumers.spec-studio, spec:decisions.studio-html-surface (ratified)

The arc's built Specs and the sixteen-Spec drift queue state ready; spec:extraction.regenerability lost two unmeasured rules first, and spec:consumers.projections-model split its unbuilt views into a captured child. Twelve terms entered CONTEXT.md, among them question key, stated next rung, design columns, Pack design, boundary, perspective, mention and entry address.

How it was built and checked

  • Plan 41. Specs first (4099443), then six lanes in parallel worktrees, two integration lanes and the oracle re-pin. Three reviews (gpt-6-astra twice, gpt-6.1-sol) found 14 issues, each folded with a regression test.
  • The fold. Opus 5.5 lanes wrote the corpus answers and decision records; gpt-6.1-sol built the engine changes, re-pinned the oracle from the carriers, and reviewed the Opus lanes mid-run (eight findings folded). gpt-6-astra (xhigh) reviewed the whole fold: no blocker, one major and two minor findings, all folded. In the second round Fable 5.1 advised on the exact wording of three rulings against standing law. Each lane, review and finding is in plan 41's last section.
  • The adopter. The plan 41 build ran read-only over libar-platform at d310eb1; its pack:history-view page counts the same 56 outside dependencies its hand-built page does, and recipe 25 resolved 576 of its 586 external entry addresses with value and line.
  • The gate, re-measured at ca95171: npm run check exits 0, with 1,540 pooled tests in 77 files and 93 CLI tests, preflight included. Validate: 250 Specs, 3 Packs, 263 anchors, 516 nodes, 1,222 edges, 0 errors, 4 warnings (the spec-sections gap the owner kept, three prose mentions). Recipes 1 and 2 are empty; 58 open questions, 6 blocking. Re-run the recipes rather than inheriting these numbers.

Try it

From the repository root after npm ci && npm run build. Measured at ca95171.

Where the arc's design stands, as data:

pnpm --silent sdp:q "$(cat dist/recipes/29-pack-design.js)" --params '{"pack":"pack:design-management-v1"}' --json
{ "totals": { "members": 24, "heldBelowNextRung": 3, "waitingForAuthor": 13, "openQuestions": 23, "blockingQuestions": 2, "withImplementations": 7, "withReferences": 3, "restsOn": 32, "restedOnBy": 2, "verifiedBy": 0, "supersededBy": 0, … } }

The same as a page: npm run generate:self-hosting, then open generated/design-review/pack/design-management-v1.md.

Which decisions narrow the projections freeze, and that none replaces it:

pnpm --silent sdp:q "$(cat dist/recipes/31-decision-register.js)" --json
{ "id": "spec:decisions.shipped-projections-frozen", "supersededBy": [], "narrowedBy": ["spec:decisions.authored-entry-order", "spec:decisions.pack-design-page", "spec:decisions.question-key-rendering"], … }

An entry address resolved to its text and line, passed as data:

pnpm --silent sdp:q "$(cat dist/recipes/25-address-resolution.js)" --params '{"addresses":["spec:consumers.spec-studio.sharing#design.buildStamp"]}' --json
{ "address": "spec:consumers.spec-studio.sharing#design.buildStamp", "resolves": true, "section": "design", "key": "buildStamp", "value": "`stamp.json` beside the page set, written by the publishing step and never by the Studio's build, …", … }

A Spec's design columns, on any Spec:

pnpm --silent sdp:q 'return g.specContext("spec:model.planned-architecture").designColumns' --json

The engine's build, and the whole corpus:

node dist/cli/sdp.js --version
pnpm --silent sdp validate . --exclude explorations --exclude examples --exclude test/fixtures/import/parity | tail -1

Feedback wanted

  • Deleting replaced decisions. MD-30, MD-34 and MD-35 are gone because MD-38 and MD-36 carry everything still in force. Is "explains nothing a reader still needs" the right test, or should a record whose reasoning was overturned stay as the account of why?
  • nothing blocks. It replaces holds for a rung that waits only for its author. Does it read as "clear to state", and never as approval?
  • Plan 42's first step. The Studio's Specs describe the whole Studio, so phase 0 starts with a design pass that splits off the pages phase 0 builds, so its code satisfies whole Specs. Is that the right first move, or should phase 0 bind by references to the existing Specs?

Upcoming

In order, with what brings each back:

  1. Merge once CI passes on the pushed head.
  2. The adopter re-pins to the merge and deletes its floor walk, boundary, question join, line parse, recipe rewrite and catalog scraping. With the re-pin it adds the two associations plan 42's acceptance needs: OD-157 in its question's text, and a test anchor on its type-comparison suite.
  3. Plan 42, the Studio's phase 0. An Opus design pass splits the Studio's Specs for honest binding, settles phase 0's open questions and prototypes the Pack page on real data; the owner states ready; then gpt-6.1-sol builds against the design, and gpt-6-astra runs the five reader tasks over the adopter's build.
  4. The defined captures, whichever the owner picks next: design diff and context bundles (the iteration loop), corpus rules with --rules, rule keys and relation reasons, example-space decoding, run evidence over CTRF.
  5. Held by triggers: the reference projection, structural Mermaid and roadmap views wait for a named reader; three older holds (enrichment detail, symbol identity, observation identity) predate this arc.

Refused, and staying refused:

  • A designed rung, a floor clause that reads Design, or a design fact.
  • A component node without code; a Protocol validator for a corpus's architecture.
  • A supersedes that replaces only part of a decision.
  • Corpus rules discovered without --rules, or corpus findings mixed into the two families.
  • Lines on Primitive or Pack nodes; an entry address as an anchor target.
  • A new reader method or query verb; --params is input to a body, never a verb.
  • Reshaping the Spec page, index, census, Mermaid or Gherkin; HTML replacing the Markdown Design Review.
  • A commit, time or run identity inside a projection; run results as delivery facts.

🤖 Generated with Claude Code

darko-mijic and others added 29 commits October 10, 2026 19:31
The owner's four rulings of 2026-10-10 (the Pack page as data plus a
Markdown page, derived design columns rather than a rung, planned
architecture captured with a question, a review packet for the drift
queue) and the Specs each built change answers to: the Pack design
page decision, the Pack design assembly, the page anatomy, entry
locations, recipe parameters and files, the design recipes, engine
provenance, and the design-maturity capture, gathered in
pack:design-management-v1. The research behind the arc is kept in
.omo/evidence/plan-41/research/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The agreed EntryLocation shape rides the schema before the lanes start,
so the extractor and the reader build against one type. sdp validate
--watch shipped in plan 35 with no Spec; spec:consumers.validate-watch
states it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A recipe that reports witnesses and coverage gaps would parse the slot
notation a second time. The design recipes are four; the coverage
question is held on its own Spec until the reader decodes example
spaces or the engine projects coverage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fourteen Specs hold what the original design (docs/lineage/v0-design/)
promised and the Protocol has not built, each at the rung its structure
clears and held there by keyed open questions: planned architecture, open
question fields, rule keys and relation reasons in the model; review
perspectives, the context bundle, design comparison between commits, the
addressed change proposal, and the deferred reference projection and
structural Mermaid in the consumers; the superseded-decision signal,
architecture constraints and corpus rules in validation; run evidence in
observation. Each cites its chapter and section and the first adopter's
evidence, and joins pack:design-management-v1 after the design-maturity
capture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Concept 04 §2 dissolves into pointers to the anchor model and the three
plan-40 rulings, keeping only what no Spec states (anchors are
framework-neutral). Concept 07 records the anchor-structure question as
resolved and the watch and scaffolding levers as shipped. The Studio
lenses Spec is decided by the architectural-annotation ruling, not the
one it superseded, and asks its architecture question against layer,
context and role; the Studio Spec page stops saying component and uses
are the only structural fields.

The registry names MD-32's three narrow supersessions, points D4 at the
Design Review Spec, and enters MD-39, the Pack design page, as held.
AGENTS.md carries plan 41's status line and records that the list
rendering was ratified in round 2. CONTEXT.md flags the arc's candidate
terms for the owner to ratify.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every open question in the corpus carries a key, wording and flags
unchanged; the arc-boundary question on graph-first planning
(#arcBoundary) gains the evidence of two arcs authored as Packs and stays
blocking for the owner to rule. The three plan-40 decisions and this
branch's Specs join the self-hosting Pack, so no Spec sits outside a
Pack. The Design Review's Pack page entry defers to its Pack design page
child.

Four unbacked mentions gain the relation that fits: the body grammar and
the parser are constrained by the rules they cite, the adopter on-ramp
depends on the body grammar its table summarizes, and the session
on-ramp is decided by the planning-truths placement. Five stay prose,
two of them inside superseded records. Promotion preflight finds no
floor failure on any Spec whose relations changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…test checks

The import round-trip suite verifies Markdown authoring: a TypeScript
corpus and its Markdown twin derive one graph. The builder suite
verifies the relation model (six declared, directed relations) and the
Pack aggregate (a plain manifest with no truth fields). The claim
taxonomy and the Spec sections model keep their gaps: no test takes
either as its subject.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`sdp q --params JSON` (or `--params @PATH`) injects a fourth binding, `params`, which is `{}`
without the flag. A value that is not JSON, or a file that cannot be read, is refused before
the graph derives: exit 1, one line on stderr, nothing on stdout.

Every catalog recipe that takes a subject reads `params.<name>` and falls back to its sample,
and its prose names the parameter: `spec` (3, 9, 19, 21), `files` (4), `pack` (5, 27), `term`
(6, 23), `component` (14), `scope` (22), `addresses` (25). Recipe 4 reads `params.files`;
the SDP_CHANGED_FILES_JSON channel is retired from the catalog and the recipe check.

The build step (src/cli/build-artifacts.ts, run from tsup's onSuccess) writes each catalog body
to dist/recipes/NN-slug.js and records `git rev-parse HEAD`, or unknown, in
dist/cli/build-info.json. `sdp --version` prints `sdp <version> (<commit>)` from package.json
and that record and never runs git. The recipe check holds every shipped file byte for byte
to its catalog body and runs each one read whole.

runValidateWatch gains its anchor for spec:consumers.validate-watch. The three skills and the
catalog front matter teach --params and the shipped files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…k page

The Pack context now carries each member's design: the rung above its
stated rung with the floor clauses that fail there, its design columns
(keyed entries, pinned declarations, open questions with their lines,
decisions), its realizing and referencing units with their components,
and its verifier and example counts. The Pack gains its boundary, the
Specs outside it that members rest on and that rest on members. A code
unit binding carries its component on the Spec context too, and the
Spec context carries its rows of the location table.

The Pack page renders that assembly in the order the page Spec fixes:
member table, next rung, boundary, open questions, code, verifier gaps,
findings. Only the checkout-v1 Pack golden changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The design-maturity narrative drops its ISO date, question positions
count from 0, the page and Pack design Specs state what the build
chose where they were silent, the parameter path resolves from the
working directory, graph-first planning names plan 35's four triggers,
the claim taxonomy's anchored and the anchor model's role and context
match the binding-grain and architectural-annotation rulings, and
every capture joins both Packs. The mention and verifier dispositions
are kept in .omo/evidence/plan-41/mentions.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bind the schema-version and Pack-order examples to 0.9.0, update current
schema claims and checkout index goldens, and review the Pack question's
new carrier-line link. Keep historical schema migration clauses intact.

Re-measure the current primary plan as plan 41 and the CLI warnings as
two honesty gaps and five prose mentions. The gate script already selects
the current plan dynamically and needs no change.

Focused validation passes all 156 tests. The whole suite passes 1572 tests
with 20 failures confined to the excluded self-hosting graph integration
suite. Lint, types, formatting, temporal and record gates, projection
checks, the prose-schema check and preflight pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pack design (29), design-change impact (30), decision register (31) and
architecture crossings (32) join the catalog, each run as written by the
recipe test over the corpus and over probes. Recipe 25 returns each
resolving entry's value, file and line, and recipe 23 each match's line,
from the location table. The skills, AGENTS.md, CONTEXT.md and README
name thirty-two recipes and the params binding.

Bindings: impl:protocol.design-recipes and test:protocol.design-recipes
bind spec:consumers.agent-surface.design-recipes; the reader and the new
impl:protocol.entry-location-recipes now satisfy
spec:extraction.entry-locations with the extractor unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The self-hosting oracle now matches the graph after plan 41. Every value
was transcribed from a Spec carrier, a Pack manifest or an anchor's own
text. Graph output was used only to find what had changed.

- Specs: 24 new Specs transcribed (13 consumers, 1 decision,
  1 extraction, 5 model, 1 observation, 3 validation). 24 changed
  entries: 14 gain 17 question keys; 8 change text (claim-taxonomy,
  the two schema-version examples, anchors, design-review,
  graph-first-planning, and the Studio lenses and Spec page); and
  markdown-authoring, relations and pack-aggregate gain has-verifier.
- Relations: 57 new and 4 added to changed carriers. The Studio
  lenses decision moves from MD-34 to the architectural-annotation
  decision.
- Packs: pack:design-management-v1 is added with its 24 members, and
  27 members join the self-hosting Pack, in manifest order.
- Anchors: 22 new anchors (14 constant form, 8 comment form) with
  26 binding edges, and impl:protocol.reader gains a target. The
  label of ExpectedAnchor becomes optional, because
  test:protocol.entry-locations states none.
- Structure: 8 engine units join the accepted roster with their
  components. The 3 test-file recipe realizations join the
  membership exceptions, as earlier document realizations did. The
  uses edge pack-design -> next-rung-floor is added. runValidateWatch
  leaves the coarse-grain list now that it has its own anchor.
- Warnings: 2 honesty gaps and 5 prose mentions.

Counts, re-measured under plan 41: 252 Specs, 3 Packs, 257 anchors,
512 nodes, 1,224 edges, readiness {defined 66, idea 9, ready 153,
scoped 24}.

impl:protocol.entry-location-recipes moves beside the describe it
binds, back within the locality bound. The executable code is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The build step reads a CRLF recipe catalog as its LF bodies and refuses
a catalog with no recipe before publishing anything, so a checkout with
Windows line endings no longer publishes zero files and deletes every
shipped recipe. Stale cleanup removes only completed recipe files, so a
concurrent build's temporary file survives. A test drives
writeBuildArtifacts through its injected git runner and asserts the
build-info record holds the commit git returned.

The Pack boundary joins members through an insertion-ordered Set per
outside Spec and relation type, linear where the array scan was
quadratic (12 s to 0.12 s for 40,000 members sharing one Spec); output
and order are unchanged.

impl:protocol.pack-design is labelled as the file's Pack design helpers
and the Pack context assembly they serve, and the evaluator dependency
moves to impl:protocol.reader, whose createReader calls the evaluator.
The self-hosting oracle is transcribed from the anchor text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… recipe 23

Line links on the Pack page percent-encode each path segment of their
destination before the #L<line> fragment and escape brackets in their
labels, so a space, a # or a ] in a file name no longer breaks the link.
Every authored field rendered in a heading or a single list item on the
Pack page (titles, questions, labels, clause text) has its line breaks
collapsed to one space, so a multiline value cannot leave its item.

A member with no binding now reads "No implementation or design-reference
binding is recorded for this member." instead of a negative realization
claim; the checkout-v1 golden and the page tests follow.

Recipe 23 gives a string-form open question, at openQuestions[n], the
line the location table records for question[n], as it already did for
the object form.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d recipe citations

sdp q takes --params as a JSON object. null, an array, a string, a
number or a boolean is refused before the graph derives, with exit 1,
one line on stderr and nothing on stdout, so a parameterized recipe can
no longer throw reading a field of null. The recipe-parameters Spec's
first rule, the catalog's front matter and bindings table, the CLI usage
text and the reading skill state the object contract.

The intent-composition proposal resolves a whole-Spec scope through the
reader's Spec context and an entry address through address resolution,
which returns malformed for a bare Spec id. The planned-architecture and
architecture-constraints Specs cite architecture crossings as recipe 32,
its catalog number, and a recipe test now checks every Spec citation of
a recipe by number and heading against the catalog. The self-hosting
oracle is transcribed from the Spec text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lanes as run, the review and its twelve folds, and the acceptance
measured at bd1f1f8, including the read-only run over the first
adopter's corpus. AGENTS.md names the arc executed and what waits for
the owner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The astra read of the fold found the CRLF regression test failing on a
CRLF checkout: it turned existing CRLF endings into CR CR LF. The
suite now normalizes the catalog on read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 163 files, which is 63 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 543ace1f-85c6-42ba-bfb0-950962dc89eb

📥 Commits

Reviewing files that changed from the base of the PR and between 822aea4 and bc2c84e.


📒 Files selected for processing (163)
  • .agents/skills/sdp-agent-surface/SKILL.md
  • .agents/skills/sdp-authoring/SKILL.md
  • .agents/skills/sdp-sessions/SKILL.md
  • .omo/evidence/plan-41/mentions.md
  • .omo/evidence/plan-41/research/platform-inventory-sol.md
  • .omo/evidence/plan-41/research/self-hosting-audit-astra.md
  • .omo/evidence/plan-41/research/v0-00-02.md
  • .omo/evidence/plan-41/research/v0-03-05-astra.md
  • .omo/evidence/plan-41/research/v0-04-06.md
  • .omo/evidence/plan-41/research/v0-07-08.md
  • AGENTS.md
  • CONTEXT.md
  • README.md
  • check-prose-schema.mjs
  • docs/agent-surface/architecture.md
  • docs/agent-surface/recipes.md
  • docs/concept/04-authoring-and-binding.md
  • docs/concept/06-consumers-and-projections.md
  • docs/concept/07-mvp-roadmap-and-open-questions.md
  • docs/concept/DECISIONS.md
  • plans/41-design-management-closer-to-v0.md
  • plans/42-spec-studio-phase-zero.md
  • specs/carrier/inline-code-spans.sdp.md
  • specs/carrier/markdown-body-grammar.sdp.md
  • specs/carrier/markdown-parser.sdp.md
  • specs/consumers/adopter-on-ramp.sdp.md
  • specs/consumers/agent-surface.address-and-cycle-recipes.sdp.md
  • specs/consumers/agent-surface.design-recipes.sdp.md
  • specs/consumers/agent-surface.example-space-coverage.sdp.md
  • specs/consumers/agent-surface.recipe-parameters.sdp.md
  • specs/consumers/agent-surface.register-recipes.sdp.md
  • specs/consumers/context-bundle.sdp.md
  • specs/consumers/delivery-session-on-ramp.sdp.md
  • specs/consumers/design-diff.sdp.md
  • specs/consumers/design-review.pack-design-page.sdp.md
  • specs/consumers/design-review.sdp.md
  • specs/consumers/engine-provenance.sdp.md
  • specs/consumers/graph-first-planning.sdp.md
  • specs/consumers/impact-graph.sdp.md
  • specs/consumers/intent-composition.proposal.sdp.md
  • specs/consumers/pack-design.sdp.md
  • specs/consumers/projections-model.roadmap-views.sdp.md
  • specs/consumers/projections-model.sdp.md
  • specs/consumers/reference-projection.sdp.md
  • specs/consumers/review-perspectives.sdp.md
  • specs/consumers/shipped-protocol-corpus.sdp.md
  • specs/consumers/spec-studio.intent-panel.sdp.md
  • specs/consumers/spec-studio.lenses.sdp.md
  • specs/consumers/spec-studio.sdp.md
  • specs/consumers/spec-studio.sharing.sdp.md
  • specs/consumers/spec-studio.spec-page.sdp.md
  • specs/consumers/structural-mermaid.sdp.md
  • specs/consumers/validate-watch.sdp.md
  • specs/decisions/anchor-comment-form.sdp.md
  • specs/decisions/architectural-annotation.sdp.md
  • specs/decisions/architectural-significance-rides-primitives.sdp.md
  • specs/decisions/authored-entry-order.sdp.md
  • specs/decisions/checked-mentions.sdp.md
  • specs/decisions/jsdoc-graph-extraction-refused.sdp.md
  • specs/decisions/pack-design-page.sdp.md
  • specs/decisions/planning-truths-placement.sdp.md
  • specs/decisions/question-key-rendering.sdp.md
  • specs/decisions/shipped-projections-frozen.sdp.md
  • specs/decisions/structural-anchor-semantics.sdp.md
  • specs/decisions/studio-html-surface.sdp.md
  • specs/design-management.pack.sdp.md
  • specs/extraction/build-pipeline.sdp.md
  • specs/extraction/claim-taxonomy.sdp.md
  • specs/extraction/contract-declarations.sdp.md
  • specs/extraction/entry-locations.sdp.md
  • specs/extraction/example-runner.sdp.md
  • specs/extraction/executable-contracts.sdp.md
  • specs/extraction/open-section-order.sdp.md
  • specs/extraction/pack-member-order.manifest-order-kept.sdp.md
  • specs/extraction/pack-member-order.sdp.md
  • specs/extraction/regenerability.sdp.md
  • specs/extraction/schema-versioning.declared-version.sdp.md
  • specs/model/anchors.sdp.md
  • specs/model/core-model.sdp.md
  • specs/model/design-maturity.sdp.md
  • specs/model/enrichment-lifecycle.sdp.md
  • specs/model/open-question-fields.sdp.md
  • specs/model/open-question-keys.sdp.md
  • specs/model/planned-architecture.sdp.md
  • specs/model/relation-reasons.sdp.md
  • specs/model/rule-keys.sdp.md
  • specs/observation/run-evidence.sdp.md
  • specs/observation/runtime-overlay.sdp.md
  • specs/self-hosting.pack.sdp.md
  • specs/validation/architecture-constraints.sdp.md
  • specs/validation/corpus-rules.sdp.md
  • specs/validation/next-rung-floor.sdp.md
  • specs/validation/prose-mentions.sdp.md
  • specs/validation/readiness-floor.sdp.md
  • specs/validation/superseded-decision-signal.sdp.md
  • specs/validation/two-check-families.sdp.md
  • specs/validation/typed-dependency-floor.sdp.md
  • specs/validation/unbound-example-posture.sdp.md
  • src/cli/build-artifacts.ts
  • src/cli/build-info.ts
  • src/cli/q-command.ts
  • src/cli/sdp.ts
  • src/cli/validate-watch.ts
  • src/extract/derive.ts
  • src/extract/markdown-body-owner-behavior.ts
  • src/extract/markdown-body-owner-sections.ts
  • src/extract/markdown-body-owners.ts
  • src/extract/markdown-body.ts
  • src/extract/markdown-types.ts
  • src/extract/markdown.ts
  • src/extract/reify.ts
  • src/extract/serialize.ts
  • src/graph/schema.ts
  • src/projections/design-review-markdown.ts
  • src/projections/design-review-pack-sections.ts
  • src/projections/design-review-pages.ts
  • src/projections/design-review.ts
  • src/reader/reader.ts
  • test/anchor-corpora.test.ts
  • test/bootstrap.test.ts
  • test/builders.test.ts
  • test/check-self-hosting-gates.test.ts
  • test/check-temporal.test.ts
  • test/checkout-v1.test.ts
  • test/cli-q.test.ts
  • test/cli.test.ts
  • test/design-review-pack-page.test.ts
  • test/design-review.test.ts
  • test/entry-locations.test.ts
  • test/extract-parity.test.ts
  • test/extract.test.ts
  • test/fixtures/checkout-v1/expected-census/index.md
  • test/fixtures/checkout-v1/expected-design-review/index.md
  • test/fixtures/checkout-v1/expected-design-review/pack/checkout-v1.md
  • test/fixtures/checkout-v1/expected-graph.json
  • test/fixtures/extract/annotation-forms/expected-graph.json
  • test/gherkin-parity.test.ts
  • test/gherkin-view.test.ts
  • test/graph-schema.test.ts
  • test/helpers/graph-structure.ts
  • test/helpers/pack-design-probe.ts
  • test/import-round-trip.test.ts
  • test/markdown-reifier.test.ts
  • test/pack-design.test.ts
  • test/reader.test.ts
  • test/recipes.test.ts
  • test/self-hosting-carrier-gherkin.test.ts
  • test/self-hosting-duplicate-ids.test.ts
  • test/self-hosting-graph.test.ts
  • test/self-hosting-oracle/anchors.ts
  • test/self-hosting-oracle/carrier.ts
  • test/self-hosting-oracle/consumers.ts
  • test/self-hosting-oracle/decisions.ts
  • test/self-hosting-oracle/declared-relations.ts
  • test/self-hosting-oracle/extraction.ts
  • test/self-hosting-oracle/index.ts
  • test/self-hosting-oracle/model.ts
  • test/self-hosting-oracle/observation.ts
  • test/self-hosting-oracle/pack-members.ts
  • test/self-hosting-oracle/structural-edges.ts
  • test/self-hosting-oracle/validation.ts
  • test/skills.test.ts
  • tsup.config.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

darko-mijic and others added 26 commits October 12, 2026 02:10
The three projection-freeze carve-outs refine the freeze instead of
superseding it, and the freeze says how it is narrowed or replaced. The
superseded-decision signal's question is answered (defined); the arc
boundary is a Pack and the delete-noise direction joins graph-first
planning (scoped). The Pack design page and checked-mentions decisions
are ratified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Four of the arc's built Specs and the fourteen drift-queue Specs state
ready. Regenerability drops its two unmeasured rules and states ready.
The projections model keeps its realized contract, drops the curation
figure and the impact graph term, captures release, baseline and phase
vocabulary as an idea child for roadmap views, and states ready.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
CONTEXT.md ratifies the nine plan-41 terms, perspective, mention and
entry address into their tables and the locked ledger. The boundary
counts four relations both ways with verifiedBy and supersededBy apart,
the stated next rung reads nothing blocks, and supersedes and refines
say how decisions are replaced and narrowed. DECISIONS.md names MD-32's
narrowing records, ratifies MD-39, enters MD-40 for checked mentions and
states the delete-noise admission rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
The owner's rulings of 2026-10-12: design maturity is derived from the
design columns and never stated; a component designed before code is a
component design Spec its component anchor later satisfies; a question's
decider is a corpus token and its fields ride labelled sub-items; a key
on any entry of the primary behavior owner sits in a [#key] marker and
is addressed #rule.<key>; a relation reason is an object per target.
Each states defined.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
…rvives

Under the owner's delete-noise direction, the structural-anchor,
rides-primitives and source-commentary records are deleted; their text
reads in git at 90c75dd. MD-38 gains the two parts it did not yet state
(the census derives its taxonomy and re-derives no finding; code reaches
its decisions through the satisfies to decidedBy join). MD-36 and MD-38
drop their supersedes edges and name the old rulings by MD number. The
registry marks the three rows deleted. Tests that name the deleted ids
are left for the integration lane.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The owner's rulings of 2026-10-12: example spaces decode once in the
engine onto the Spec context; perspective is the term, declared as
corpus data a recipe takes; a context bundle is a recipe with a
character budget and a fixed cut order; a design diff is a recipe given
the base graph, comparing keyed entries by key only; a change proposal
is one JSON schema and only changes whose scope moved go to a person;
architecture rules stay the corpus's, declared in a constraint Spec and
walked by a recipe; corpus findings sit outside the two families and run
only from --rules PATH; run evidence joins by test file and reads CTRF.
Each answered capture states defined. Structural Mermaid keeps its
trigger and names the Studio's architecture lens as its expected home.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eted noise

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
The owner's rulings of 2026-10-12: the Studio serves a person designing
a capability in the repository and a PR reviewer with a link, accepted
by the first adopter's five reader tasks; the read-only Studio ships in
the open-source package; it stands beside the Markdown Design Review;
the publishing step writes the build stamp beside the page set; the
composing panel hands off a change proposal to copy or save, and the
agent opens the pull request. The four Specs state defined; the HTML
surface decision waits for the owner's ratification.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
Design maturity stays readiness's ratified meaning; the design columns
carry what design a Spec holds. The planned component's own id is keyed
id, as on an anchor. Perspective selectors, corpus-rule severity and the
bundle's budget floor become blocking, so those three Specs state scoped.
The intent panel no longer prescribes a pull request; the proposal's
batch question is settled by its per-change rule; a comma splice in the
freeze is fixed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… narrowing decisions, honest verifiers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Transcribe the folded carriers and verifier sites, including the roadmap capture, deleted decisions, narrowing relations, readiness statements and four-warning posture.

Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
Use the retained binding-grain decision for bidirectional dependency coverage, expect decision narrowing in the live register, pin four CLI warnings, and recognize the merged plan 42.

Validation: npm run check passed; 1,633 tests across 78 files. Self-hosting validate reported 0 errors and 4 warnings.

Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
MD-33 distinguishes whole replacement from narrowing in its decision,
consequence and registry row. The core-model verifier asserts coordinates
against the supplied envelope and adds a child-only binding that leaves
the parent unimplemented. Plan 42's acceptance reads the page set with
the files it links to, and its design pass recommends graph homes for the
two associations the adopter's graph lacks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: gpt-6.1-sol <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Perspectives select on bounded graph data and say whether each row matched
on declared intent or anchored structure. An error from a corpus rule fails
sdp validate --rules, and a broken rule exits nonzero; the two-family rule
now names the Protocol's own validators. A bundle's budget is a hard limit
in UTF-16 code units of the returned compact JSON, and an unfittable scope
returns a budget-exceeded result as data. The Studio Spec states plan 42's
reader tasks and access boundary; run evidence stays at file grain; the
Studio HTML decision rests on search, filters and navigation and states
ready. Fable 5.1 advised on the rulings' wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@darko-mijic darko-mijic changed the title Design management, closer to the original design: the Pack design page, entry lines, recipe parameters, design recipes, and v0 captured ahead of code Design management, closer to the original design: the Pack design page, entry lines, recipe parameters, design recipes, and v0 captured and ruled Oct 12, 2026
It derives the corpus graph and runs recipe 29 over every Pack, about
1.2 s locally; the pull-request CI run of ca95171 crossed the 5 s default
by 56 ms while the push run of the same commit passed. 20 s matches the
repository's other heavy tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@darko-mijic
darko-mijic merged commit 0353f10 into main Oct 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant