Skip to content

docs: adopt reader-task documentation standard as a hub policy#38

Merged
flyingrobots merged 24 commits into
mainfrom
docs/continuum-stack-slice-plan
Jun 27, 2026
Merged

docs: adopt reader-task documentation standard as a hub policy#38
flyingrobots merged 24 commits into
mainfrom
docs/continuum-stack-slice-plan

Conversation

@flyingrobots

Copy link
Copy Markdown
Owner

Adopts the reader-task Documentation Product Standard as a Continuum-specific
hub policy, then applies it to the first capability (contract-families) per the
standard's incremental adoption sequence. Includes the housekeeping to make the
new documentation gate enforceable.

This branch was previously merged via #37 (slice-plan work, already in main);
the diff here is only the two commits below.

Policy (docs/DOCUMENTATION_POLICY.md)

A §17 local extension, not a rewrite. Names Continuum a coordination hub;
adds the "own the boundary, link outward" anti-pattern; defines a capability
taxonomy and hub-native page types; marks design packets as append-only decision
records; and requires the cross-repo registry/ownership/release tables to be
generated-or-validated rather than hand-curated.

Applied to contract-families

  • docs/index.md — reader-goal router / capability landing page.
  • docs/catalog.yaml — machine-readable catalog with cross-repo routing fields.
  • docs/how-to/publish-runtime-evidence-for-a-contract-family.md — first
    conformance guide.
  • docs/OVERVIEW.md — fixed a real staleness signal (claimed to synthesize
    0001-0017 while packets run to 0037).

Enforcement

  • scripts/docs-lint.mjs — dependency-free gate: internal links, catalog
    integrity, registry/schema coverage. Currently green.
  • .githooks/pre-commit — runs the gate (was a no-op placeholder).
  • .github/workflows/ci.yml — new CI (none existed) running the docs gate and
    the apps/warp node --test suite (28 tests).

Deliberately not done

No mass-conversion of the 37 packets (the standard forbids it; next capability
adopts only after this one is observed in use).

Add a Continuum-specific extension of the Documentation Product Standard and
apply it to the first capability (contract-families), per the standard's
adoption sequence.

- docs/DOCUMENTATION_POLICY.md: local §17 extension. Names Continuum a
  coordination hub, adds the hub anti-pattern (own the boundary, link outward),
  a capability taxonomy, hub-native page types, the append-only decision-record
  rule for design packets, and the generate-don't-curate rule for the
  cross-repo registry/ownership/release tables.
- docs/catalog.yaml: machine-readable catalog with cross-repo fields for agent
  routing by intent/capability/audience/type.
- docs/index.md: capability landing page / router grouped by reader goal.
- docs/how-to/publish-runtime-evidence-for-a-contract-family.md: first
  conformance guide for the contract-families capability.
- docs/OVERVIEW.md: fix staleness signal (claimed 0001-0017; route later
  coordination material through the index instead of fabricating synthesis).
- scripts/docs-lint.mjs: dependency-free deterministic gate (internal links,
  catalog integrity, registry/schema coverage). Currently green.
- CHANGELOG: record the documentation-standard adoption under Unreleased.
- .githooks/pre-commit: run scripts/docs-lint.mjs instead of the placeholder
  no-op, so the documentation gate blocks bad commits locally.
- .github/workflows/ci.yml: add CI (none existed) running the docs gate and the
  apps/warp node --test suite on push to main and on pull requests.
@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@flyingrobots, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 16 minutes and 52 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: fdbae35d-4706-497f-b26b-b51d50e16167

📥 Commits

Reviewing files that changed from the base of the PR and between cf9a52f and 4ff132c.

📒 Files selected for processing (14)
  • APP_GLOSSARY.md
  • CHANGELOG.md
  • apps/warp/src/init.mjs
  • apps/warp/test/warp-init.test.mjs
  • apps/warp/test/warp-warpspace.test.mjs
  • docs/DOCUMENTATION_POLICY.md
  • docs/GETTING_STARTED.md
  • docs/catalog.yaml
  • docs/method/DOCUMENTATION_AUDIT.md
  • docs/method/release-runbook.md
  • docs/reference/app-noun-map.md
  • docs/reference/glossary.md
  • docs/reference/qw-cli.md
  • scripts/docs-lint.mjs

Walkthrough

Adds documentation policy, catalog, index, and release pages; wires docs linting into hooks and CI; updates warp init to resolve crate-based Wesley binaries; and removes the Wesley/TTD implementation surface.

Changes

Documentation, release, warp, and Wesley changes

Layer / File(s) Summary
Policy, lint gate, and governance
docs/DOCUMENTATION_POLICY.md, docs/catalog.yaml, scripts/docs-lint.mjs, .githooks/pre-commit, .github/workflows/ci.yml, scripts/setup-hooks.sh, AGENTS.md, CONTRIBUTING.md, METHOD.md, CHANGELOG.md
Defines the documentation standard, catalog invariants, lint validation, hook/CI execution, and contribution/testing guidance.
Docs index and reference pages
docs/index.md, docs/GETTING_STARTED.md, docs/OVERVIEW.md, docs/reference/*, docs/method/DOCUMENTATION_AUDIT.md, docs/explanation/protocol-profiles.md, README.md, README_FULL.md, APP_GLOSSARY.md
Adds the docs index and reference pages, updates routing and overview text, and aligns glossary, ownership, convergence, and CLI navigation pages with the new documentation map.
Release lifecycle and demo toolchain
.continuum/release.yml, RELEASE.md, docs/method/release*.md, docs/releases/demo/*, CHANGELOG.md
Adds the release runbook, release profile configuration, release summary, and demo stack documentation and manifest updates for the Wesley crate-based toolchain.
Warp init crate resolution
apps/warp/src/init.mjs, apps/warp/test/warp-init.test.mjs, apps/warp/test/warp-warpspace.test.mjs, apps/warp/README.md, apps/warp/VISION.md
Updates warp init to resolve crate-based Wesley binaries from PATH, and revises init and warpspace tests to cover the new install mode and filesystem assertions.
Design log archival
docs/design/README.md, docs/design/*/README.md, docs/design/*/backlog-origin.md
Marks the design-log README and packet files as archived across the numbered design history.
Wesley and TTD surface removal
wesley/*, wesley/support/*, wesley/ttd/*, wesley/test/*, wesley/profile/*, wesley/utils/*
Removes the Wesley CLI command, support, TTD, profile, utility, test, fixture, and schema modules from the codebase.

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related issues

Possibly related PRs

  • flyingrobots/continuum#18: Both PRs touch the Continuum/Wesley CLI module surface, but this PR removes large parts of that codepath while the other added it.
  • flyingrobots/continuum#19: This PR updates the contract-family registry evidence/status text that the earlier PR introduced.
  • flyingrobots/continuum#20: Both PRs change apps/warp/src/init.mjs and warp init/warpspace documentation or tests.

Poem

A linter awoke with a stern little clang,
The docs found a map, and the gate got a gang.
Release notes were carved, and the old packets slept,
While warp learned new binaries it could detect.
The archive turned still, the index stood bright,
And CI now guards the whole house at night.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 18.18% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the core change: adopting a reader-task documentation standard as a Continuum hub policy.
Description check ✅ Passed The description accurately summarizes the policy adoption, contract-families rollout, and docs-gate enforcement changes.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yml (1)

1-30: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Missing least-privilege permissions for GITHUB_TOKEN.

Line 1 defines a workflow that currently inherits broad default token scopes. Lock this down explicitly (e.g., contents: read) unless a job needs more.

Suggested hardening
 name: CI
+permissions:
+  contents: read
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 1 - 30, The CI workflow is using the
default broad GITHUB_TOKEN scopes, so add an explicit least-privilege
permissions block at the workflow level in the CI workflow and keep it minimal,
such as read-only repository contents. Update the top-level workflow
configuration that defines the docs and warp jobs so both jobs inherit the
restricted token scope unless a specific step later needs more access.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Around line 3-7: Add workflow concurrency control to the CI workflow so
redundant runs are cancelled when new commits arrive. Update the top-level
GitHub Actions workflow configuration in the ci workflow to define a concurrency
group and set cancel-in-progress to true, ensuring newer pushes or pull requests
supersede stale runs.
- Around line 13-14: The workflow currently uses mutable GitHub Actions tags for
actions/checkout and actions/setup-node, so update those steps to pinned full
commit SHAs instead of v4. Also modify each actions/checkout invocation to set
persist-credentials to false to disable credential persistence; use the existing
checkout and setup-node step entries in the CI workflow to make these changes.

In `@scripts/docs-lint.mjs`:
- Around line 153-167: The docs lint gate currently skips the registry/schema
coverage checks when either contract-family-registry.md or the schemas directory
is missing, which lets the validation pass silently. Update the logic in
docs-lint.mjs around the registryPath/SCHEMAS existence check so the absence of
either required surface triggers err(...) instead of bypassing enforcement,
while keeping the existing schema-to-registry and registry-to-schema checks in
the same block. Use the existing symbols registryPath, SCHEMAS, and err to make
the failure deterministic and clearly reported.
- Around line 156-159: The schema reference check in the docs lint logic is
using substring matching via registry.includes(f), which can incorrectly accept
incidental text matches. Update the validation in docs-lint.mjs around the
schemaFiles loop to extract explicit schemas/<name>.graphql references from
contract-family-registry.md, compare those parsed references against schemaFiles
as sets, and keep the existing error reporting path in err(...) when an authored
schema is missing from the registry.

---

Outside diff comments:
In @.github/workflows/ci.yml:
- Around line 1-30: The CI workflow is using the default broad GITHUB_TOKEN
scopes, so add an explicit least-privilege permissions block at the workflow
level in the CI workflow and keep it minimal, such as read-only repository
contents. Update the top-level workflow configuration that defines the docs and
warp jobs so both jobs inherit the restricted token scope unless a specific step
later needs more access.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2e96ae26-271a-4d28-a15e-6439ae1125a9

📥 Commits

Reviewing files that changed from the base of the PR and between 4711394 and 51c0d22.

📒 Files selected for processing (10)
  • .githooks/pre-commit
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • README.md
  • docs/DOCUMENTATION_POLICY.md
  • docs/OVERVIEW.md
  • docs/catalog.yaml
  • docs/how-to/publish-runtime-evidence-for-a-contract-family.md
  • docs/index.md
  • scripts/docs-lint.mjs
📜 Review details
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

**: # AGENTS.md

Role

Continuum is the coordination spine for the active stack. It does not own a
runtime implementation, a substrate, or a parallel ontology. It owns shared
truth across Echo, git-warp, warp-ttd, and Wesley.

Git Safety

  • Never amend commits.
  • Never rebase.
  • Never force git operations.
  • Stage only the files written in the current turn.
  • Commit each completed slice in the same turn.

Process

  • Read METHOD.md before changing structure.
  • Keep active work in docs/design/.
  • Keep concrete work in docs/method/backlog/.
  • Keep retros in docs/method/retro/.
  • Update docs/BEARING.md and docs/VISION.md
    only at cycle boundaries.

Doctrine

  • Continuum owns coordination truth, not substrate truth.
  • Shared nouns need one authored home and explicit publication boundaries.
  • Cross-repo witness and compatibility truth beats hand-wavy alignment claims.
  • No shadow schemas, no shadow vocabularies, no shadow ownership.

Files:

  • docs/how-to/publish-runtime-evidence-for-a-contract-family.md
  • README.md
  • CHANGELOG.md
  • docs/OVERVIEW.md
  • docs/catalog.yaml
  • scripts/docs-lint.mjs
  • docs/index.md
  • docs/DOCUMENTATION_POLICY.md
🪛 zizmor (1.26.1)
.github/workflows/ci.yml

[warning] 13-13: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)


[warning] 24-24: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)


[warning] 1-30: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)


[warning] 9-18: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)


[error] 13-13: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 14-14: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 24-24: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 25-25: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[warning] 3-6: insufficient job-level concurrency limits (concurrency-limits): workflow is missing concurrency setting

(concurrency-limits)

🔇 Additional comments (8)
docs/DOCUMENTATION_POLICY.md (1)

1-174: LGTM!

docs/catalog.yaml (1)

1-200: LGTM!

docs/index.md (1)

1-45: LGTM!

docs/how-to/publish-runtime-evidence-for-a-contract-family.md (1)

1-79: LGTM!

docs/OVERVIEW.md (1)

3-17: LGTM!

README.md (1)

62-63: LGTM!

CHANGELOG.md (1)

5-16: LGTM!

.githooks/pre-commit (1)

4-5: LGTM!

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml Outdated
Comment thread scripts/docs-lint.mjs Outdated
Comment thread scripts/docs-lint.mjs
@flyingrobots

Copy link
Copy Markdown
Owner Author

🐰 Code review — docs: adopt reader-task documentation standard

Reviewed origin/main..HEAD (10 files, +724/-3). No critical issues. Findings below; severities are mine to defend.

cc @codex — please confirm or contest, especially M1 and M3 (self-consistency of the policy against its own artifacts).

# Severity File Loc Type Finding
M1 Major docs/OVERVIEW.md L1-2 Accuracy Claims synthesis "covering design packets 0001 through 0022", but 0019, 0020, 0021 are not synthesized anywhere in the body. This reintroduces the exact staleness/accuracy defect the change purports to fix.
M2 Major scripts/docs-lint.mjs / DOCUMENTATION_POLICY.md lint L4,L64,L81 / policy §8 Consistency Policy §8 lists "internal relative links and anchors … resolve" as a deterministic gate, but the linter treats anchors as advisory warnings (non-blocking). Diverges from base §12.2 too.
M3 Major DOCUMENTATION_POLICY.md / docs/catalog.yaml policy §6,§7 Overclaim Policy asserts catalog records "carry" authored_home, compiler_owner, runtime_owner, consumers, compatibility_status. None of these fields exist in catalog.yaml. Doc describes an unrealized capability.
M4 Major scripts/docs-lint.mjs L46-58 Soundness Minimal YAML parser silently ignores any unrecognized line (wrong indent, nested/multiline value). A malformed catalog entry can pass the gate undetected → false confidence.
m1 Minor docs/index.md L13,L20 Style (base §9.4) Bare filenames as link labels: [`catalog.yaml`] and [README_FULL]. Violates the standard being adopted.
m2 Minor scripts/docs-lint.mjs L40 Dead logic `/^(https?:
m3 Minor scripts/docs-lint.mjs L101-105 Weak oracle Coverage uses registry.includes(filename); a mere mention anywhere (prose, "must not" example) satisfies it. Error text "no row references" overstates the check.
m4 Minor policy / catalog.yaml §7 / records Naming Policy routes by audience (singular); catalog key is audiences (plural). audiences/intents vocab is uncontrolled and unvalidated despite being routing axes.
m5 Minor .github/workflows/ci.yml L16,L27 Parity Pins Node 22; repo developed on Node 26 and warp tests verified only on 26. Dev/CI drift; consider a matrix or alignment.
m6 Minor DOCUMENTATION_POLICY.md §6 Doc docs/design/0014-.../README.md ellipsis pseudo-paths in inline code are neither links nor copyable paths.
m7 Minor scripts/docs-lint.mjs L33 False-positive risk Link regex scans fenced code blocks; [x](y) inside ``` fences would be checked.
m8 Minor .github/workflows/ci.yml whole Hardening No permissions: (least privilege) or concurrency: group.
n1 Nit README.md L94 MD009 Pre-existing trailing whitespace adjacent to the edit.
n2 Nit .github/workflows/ci.yml L29 Coverage apps/warp/test/*.test.mjs glob misses any nested test dirs.
n3 Nit docs/how-to/...md Related Policy §4 conformance-guide MUST "link to … the registry row"; it links the registry page, not a row anchor.
n4 Nit scripts/docs-lint.mjs L1 License New source file lacks an Apache-2.0 header if that is repo convention.

Breakdown: 0 critical · 4 major · 8 minor · 4 nits.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 51c0d22fde

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/OVERVIEW.md Outdated
Comment on lines +3 to +4
This document is the brief synthesis of Continuum's **theory and ontology**,
covering design packets `0001` through `0022`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop claiming missing packet coverage

When a reader uses this overview as the synthesis for packets 0001 through 0022, they will not get the decisions from 0019, 0020, or 0021: the body references 0018 and then jumps to 0022, omitting the Echo invariant audit, shared admission/policy publication, and family-version doctrine. Since this change expands the advertised scope to 0022, the overview now gives false confidence that those pre-0023 decisions are covered.

Useful? React with 👍 / 👎.

Comment thread scripts/docs-lint.mjs Outdated
Comment on lines +80 to +81
if (!destHeadings.has(anchor)) {
warn(`${relative(ROOT, file)}: anchor #${anchor} not found in ${target}`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fail the gate for broken documented anchors

When a docs link targets a renamed or removed heading such as some-page.md#old-heading, this path only records a warning, but §8 of the new policy says internal relative links and anchors are part of the deterministic gate and CI/pre-commit only fail on errors. That means broken anchors still leave docs-lint green, so the enforcement does not match the policy it is supposed to implement.

Useful? React with 👍 / 👎.

Comment thread docs/DOCUMENTATION_POLICY.md Outdated
Comment on lines +136 to +137
The repo maintains `docs/catalog.yaml` per base §10, extended with the cross-repo
fields in §6. Rules:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove the missing catalog-field promise

When agents follow the policy to route via docs/catalog.yaml, this sentence says the catalog is extended with the §6 cross-repo fields, but the new catalog records only contain fields like audiences, intents, and related, and the linter never requires authored_home, compiler_owner, runtime_owner, consumers, or compatibility_status. Either those fields need to be added and validated or the policy should be narrowed, otherwise the documented machine-readable contract points to data that does not exist.

Useful? React with 👍 / 👎.

Comment thread scripts/docs-lint.mjs
Comment thread scripts/docs-lint.mjs Outdated
Comment on lines +157 to +158
if (!registry.includes(f)) {
err(`contract-family-registry.md: no row references authored family schemas/${f}`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Verify registry rows instead of filename mentions

When a schema filename remains anywhere outside the Family Matrix row, such as explanatory prose or a stale note, registry.includes(f) still reports coverage even if the actual registry row was removed. Since the policy promises every authored family has a registry row and every row's Authored home resolves, the gate should parse the table rows or authored-home cells instead of accepting any substring in the file.

Useful? React with 👍 / 👎.

Comment thread scripts/docs-lint.mjs
Comment thread scripts/docs-lint.mjs Outdated
Comment on lines +139 to +140
if (p.path && !existsSync(resolve(DOCS, p.path))) {
err(`catalog.yaml: ${label} path does not resolve -> ${p.path}`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Require catalog targets to be files

When a catalog entry accidentally points at an existing directory such as design/ instead of a page, this check still passes even though the new policy says path must resolve to a file. That leaves agents with a green catalog entry they cannot open as a concrete documentation page, so the gate should use statSync(...).isFile() after resolving the path.

Useful? React with 👍 / 👎.

Comment thread .githooks/pre-commit
Majors:
- OVERVIEW: correct synthesis scope to 0001-0018 + 0022; 0019-0021/0023+ are
  explicitly not synthesized (M1).
- Policy/lint: anchor resolution is documented as advisory (approximate slug),
  links stay blocking; policy §8 now matches the implementation (M2).
- Policy/catalog: cross-repo fields (authored_home, compiler_owner,
  runtime_owner, consumers, compatibility_status) are now realized on the four
  family-reference catalog entries; policy scopes the claim to those entries (M3).
- docs-lint: catalog parser no longer silently ignores unrecognized lines; an
  unparsed line is now an error (M4, verified by negative test).

Minors/nits:
- index.md: descriptive link labels instead of bare filenames (m1).
- docs-lint: simplified external-scheme skip (removed dead # branch, m2);
  registry coverage now requires a `schemas/<file>` path reference with an
  accurate message (m3); validates a controlled `audiences` vocab (m4);
  strips fenced/inline code before link and heading scanning (m7).
- ci.yml: add least-privilege permissions and a concurrency group (m8);
  matrix warp tests over Node 22/24 (m5); recursive test glob (n2).
- README: drop trailing whitespace adjacent to the edit (n1).
- Policy §4/§6: "registry entry" wording (n3); real packet paths, no ellipsis (m6).

n4 (license header) dismissed: repo has no per-file header convention.
Reverse the earlier append-only-packet stance in DOCUMENTATION_POLICY.md:

- §4: replace the design-packet page type with a decision-record (ADR-lite)
  type; design-packet is now a frozen legacy archive, not for new docs.
- §5: rewrite to "the documentation system is reader-task pages, not the packet
  log" — durable truth lives in reader-task pages, new decisions use ADR-lite or
  a CHANGELOG line, docs/design/ is frozen, OVERVIEW must stop synthesizing
  packets. Add a §5.1 per-capability coverage matrix as the anti-sprawl governor.
- §9: reframe adoption as consolidation from the packet log, not new authoring;
  record the release-targets reference lift as the first step.

Notes that METHOD.md's design-cycle mandate needs a follow-up edit.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/index.md (1)

42-44: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Align packet lifecycle wording with the new reader-task policy.

Line 42-Line 44 still states packets are “append-only decision records,” but this PR’s own framing shifts packets to frozen legacy history and routes new decisions to ADR-lite/CHANGELOG. Keep one authoritative instruction.

Suggested patch
-- The full record lives in the [design packets](design/README.md). Packets are
-  append-only decision records; a superseded packet links forward rather than
-  being deleted.
+- The full historical record lives in the [design packets](design/README.md).
+  Packets are legacy decision history; route new decisions through ADR-lite
+  records and/or `CHANGELOG.md` per current policy.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/index.md` around lines 42 - 44, Update the packet lifecycle wording in
the docs index so it matches the new reader-task policy: remove the “append-only
decision records” description and replace it with language that treats packets
as frozen legacy history, with new decisions recorded in ADR-lite/CHANGELOG
instead. Keep the references in the docs consistent with the symbols and
terminology used in the surrounding design packet documentation, especially the
design packets README and any packet lifecycle wording in this section.
♻️ Duplicate comments (1)
.github/workflows/ci.yml (1)

35-36: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Pin the action refs and disable checkout credential persistence.

actions/checkout@v4 and actions/setup-node@v4 are still mutable tags, and the checkout step still inherits the default persisted token. Pin both actions to full commit SHAs and add persist-credentials: false on the checkout step.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yml around lines 35 - 36, The CI workflow still uses
mutable action tags and the checkout step keeps persisted credentials. Update
the checkout and setup-node steps in the workflow to use pinned full commit SHAs
instead of v4 tags, and add persist-credentials: false to the actions/checkout
step so the default token is not retained.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/index.md`:
- Around line 42-44: Update the packet lifecycle wording in the docs index so it
matches the new reader-task policy: remove the “append-only decision records”
description and replace it with language that treats packets as frozen legacy
history, with new decisions recorded in ADR-lite/CHANGELOG instead. Keep the
references in the docs consistent with the symbols and terminology used in the
surrounding design packet documentation, especially the design packets README
and any packet lifecycle wording in this section.

---

Duplicate comments:
In @.github/workflows/ci.yml:
- Around line 35-36: The CI workflow still uses mutable action tags and the
checkout step keeps persisted credentials. Update the checkout and setup-node
steps in the workflow to use pinned full commit SHAs instead of v4 tags, and add
persist-credentials: false to the actions/checkout step so the default token is
not retained.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a91cb391-cc41-4022-9907-c64e350ab558

📥 Commits

Reviewing files that changed from the base of the PR and between 51c0d22 and d22e231.

📒 Files selected for processing (8)
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • README.md
  • docs/DOCUMENTATION_POLICY.md
  • docs/OVERVIEW.md
  • docs/catalog.yaml
  • docs/index.md
  • scripts/docs-lint.mjs
📜 Review details
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

**: # AGENTS.md

Role

Continuum is the coordination spine for the active stack. It does not own a
runtime implementation, a substrate, or a parallel ontology. It owns shared
truth across Echo, git-warp, warp-ttd, and Wesley.

Git Safety

  • Never amend commits.
  • Never rebase.
  • Never force git operations.
  • Stage only the files written in the current turn.
  • Commit each completed slice in the same turn.

Process

  • Read METHOD.md before changing structure.
  • Keep active work in docs/design/.
  • Keep concrete work in docs/method/backlog/.
  • Keep retros in docs/method/retro/.
  • Update docs/BEARING.md and docs/VISION.md
    only at cycle boundaries.

Doctrine

  • Continuum owns coordination truth, not substrate truth.
  • Shared nouns need one authored home and explicit publication boundaries.
  • Cross-repo witness and compatibility truth beats hand-wavy alignment claims.
  • No shadow schemas, no shadow vocabularies, no shadow ownership.

Files:

  • CHANGELOG.md
  • README.md
  • docs/index.md
  • docs/catalog.yaml
  • docs/OVERVIEW.md
  • docs/DOCUMENTATION_POLICY.md
  • scripts/docs-lint.mjs
🪛 LanguageTool
docs/DOCUMENTATION_POLICY.md

[style] ~131-~131: Consider using “who” when you are referring to a person instead of an object.
Context: ...d, reasoned answer — it is the governor that stops new sprawl. Add a page type only ...

(THAT_WHO)

🪛 zizmor (1.26.1)
.github/workflows/ci.yml

[warning] 35-35: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)


[error] 35-35: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 36-36: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)

🔇 Additional comments (8)
scripts/docs-lint.mjs (1)

173-174: Schema coverage check still relies on substring matching.

This appears to be the same unresolved concern already raised earlier: registry.includes(\schemas/${f}`)` can still pass on incidental text instead of explicit registry references.

docs/DOCUMENTATION_POLICY.md (1)

84-85: LGTM!

Also applies to: 95-97, 99-127, 130-142, 143-143, 166-170, 180-187, 188-206, 215-232

docs/catalog.yaml (1)

9-12: LGTM!

Also applies to: 110-114, 124-128, 138-142, 152-156

.github/workflows/ci.yml (1)

8-13: LGTM!

docs/index.md (1)

13-38: LGTM!

docs/OVERVIEW.md (1)

4-6: LGTM!

README.md (1)

64-64: LGTM!

CHANGELOG.md (1)

5-21: LGTM!

…t in

The policy referenced an external, unpublished base standard via dangling
"base §N" pointers. Fully adapt it instead:

- docs/DOCUMENTATION_POLICY.md: rewrite as the self-contained Continuum
  Documentation Standard (18 sections: purpose, hub framing + invariant,
  principles, architecture, capability taxonomy, page types, the reader-task vs
  packet-log rule, coverage matrix, generate-don't-curate, catalog, evidence
  discipline, examples, style, gates, change-impact, anti-patterns, done,
  adoption). No external references remain.
- AGENTS.md: point at the standard; mark docs/design/ frozen; route new
  decisions to ADR-lite/CHANGELOG instead of packets.
- CONTRIBUTING.md: new community file pointing at the standard, git laws,
  conventional commits, the docs gate, and the evidence discipline.
- catalog/index/docs-lint: retitle to "Documentation Standard", add the
  decision-record page type to the controlled vocabulary and the linter.
Add docs/method/DOCUMENTATION_AUDIT.md: a per-file claim audit verified
against source code (schemas, the qw CLI, the Wesley module, lint/CI/hook
wiring) with path#line@sha citations, accuracy scores, keep/merge/trash
decisions, and a signpost + docs/topics/ consolidation map.

Apply the unambiguous, source-backed corrections the audit surfaced:

- GETTING_STARTED: drop the qw build/qw doctor step (no such commands;
  apps/warp/VISION already lists them as unimplemented).
- DOCUMENTATION_POLICY 18: remove the false "Done: docs/reference/
  release-targets.md / packet 0038" claim (none exist).
- AGENTS/CONTRIBUTING: name the reader-task dirs that actually exist
  instead of docs/reference and docs/explanation.
- index.md: packets are a frozen historical decision log, not append-only.
- METHOD/method/process: replace the design-cycle mandate with the
  ADR-lite/CHANGELOG rule (policy 7 supersession).
- design/README: rewrite as a frozen-archive index; relabel all 41 design
  files status: proposed -> archived.
- wesley/README: the unit tests require @wesley/core; they are not hermetic.

Structural consolidation (creating docs/topics/, lifting packets,
splitting README_FULL, deleting GoodIdeas) is left for a confirmed pass.
GoodIdeas.md was a salvage list from the old Continuum repo. Its
Continuum-relevant ideas are already realized in current docs (invariant
index, contract-family registry, glossary, doc policy, schema-first
families). The remaining still-live ideas are Echo/git-warp runtime
internals; captured them as 'cool ideas' issues #39-42 before deleting
so nothing is lost (history retains the file).

Also aligned the audit's consolidation map to the policy's named
reader-task directories (docs/reference/, docs/how-to/, docs/explanation/,
docs/invariants/) instead of an invented docs/topics/ tree.
…ADME_FULL

Consolidation pass moving durable truth out of the frozen design log into
the policy's named reader-task shelves (docs/reference/, docs/explanation/).

- docs/reference/ownership-map.md: lifted from packet 0014 and refreshed to
  current schema truth (adds the settlement and runtime-boundary families
  the original packet predated). index.md + catalog.yaml repointed; packet
  demoted to an archived design-packet.
- docs/reference/convergence.md: lifted from packets 0035/0036 (release bar,
  repository ownership, the six gates with owners/pass rules, GP0-GP6
  ordering, compatibility set, closure rule). Live release state is linked to
  GitHub Project #15 and the gate issues, not copied. 0037/0030 linked as
  design history; convergence packets archived in catalog.
- docs/explanation/protocol-profiles.md: README_FULL's capability tiers
  (T0-T6) and continuum.*.v1 profiles are not authored in schemas/code, so
  they are moved here under status: proposed with an explicit no-source
  caveat. README_FULL now points here and its 'warp doctor' reference is
  corrected to the qw CLI.

docs-lint passes (links, catalog integrity, registry coverage).
…VIEW

Continue the consolidation into the policy's reader-task shelves.

- docs/reference/glossary.md: canonical shared-noun glossary, source-backed
  against the four authored families, with cross-repo term usage, banned
  collapses, and stable-wire-name notes. APP_GLOSSARY.md now points at it and
  keeps only its per-app (jedit) mapping role.
- docs/reference/qw-cli.md: exact qw command surface (init, install, warpspace
  lock/verify/sync/doctor/locate) from apps/warp/src/cli.mjs, including the
  not-yet-implemented qw build/doctor/update note. Linked from index.md;
  GETTING_STARTED.md stays the warp-cli how-to.
- docs/OVERVIEW.md: removed the 'synthesis of packets 0001-0018' framing
  (policy 18) and relabelled per-section 'Detailed packets' as 'Design
  history'. Kept in place as the ontology explanation hub to avoid breaking
  many inbound links.

Registered the new pages in docs/catalog.yaml; docs-lint passes.
… gate

Tests assert software behavior exclusively: return values, state, and
observable API behavior. They must not assert on stdout/help text, Markdown,
generated output, or repo artifacts as strings — those are fragile and cause
friction when adjusting workflows. Doc/artifact checks stay in the
scripts/docs-lint.mjs gate, not the behavior test suite.

Recorded in CONTRIBUTING.md (Testing principle) and AGENTS.md (Testing).
Per the testing principle (behavior, not incidental stdout), the three
'help works' bats cases asserted exact help-text and flag-name strings.
Reduce them to assert --help exits zero (renamed 'help succeeds'); the flag
wiring is behavior, the help prose is not. Behavioral tests that assert
generated bundles/reports are unchanged.

Also refine the principle wording in CONTRIBUTING.md/AGENTS.md: asserting
that the software produced an artifact (code, schema, lockfile, structured
report) is fine and expected; the prohibition is incidental output/prose
strings.

bats parse/run verified (cases skip here only for lack of a sibling Wesley
host CLI); warp test suite unaffected.
Sweep for incidental-string assertions per the testing principle. The
'warpspace help and usage errors stay user-facing' test asserted help-text
content and echoed 'Usage:' strings; remove those and keep the behavioral
checks (exit codes, no stack-trace leak, which validation fired).

Left intact as legitimate behavior (producing the artifact is the behavior):
generated-code/schema-symbol assertions in wesley compile-targets,
observer-plan, and runtime-boundary-invariants tests, and the generated
toml/lock assertions in warp-init.

Warp suite: 28 pass, 0 fail.
Follow the per-case guidance from review:

- warp-init: the generated README assertions matched fixed prose; assert the
  README.md and .warpspace/README.md are absent before init and present after
  (file existence is the behavior).
- warp-warpspace: remove the stack-trace-absence doesNotMatch guards. Keep
  exit-code asserts, the structured --json error.code check (the real 'type of
  error' assertion), and the behavioral doesNotMatch (-q not consumed as a
  path; failed install does not print success).
- wesley bats: drop the redundant assert_output "Continuum ... failed" prose;
  assert_failure already asserts the non-zero return and jq asserts the failed
  report row.

Kept as legitimate (artifacts/behavior): bats assert_file_exist + jq over
generated bundles/reports, and the profile.proves data-field check.

warp suite 28 pass / 0 fail; bats parse and run (skip without sibling Wesley).
- docs-lint: validate catalog status against a controlled set and require the
  policy-9 cross-repo fields on family-reference entries. Negative-tested both
  rules (a bad status and a missing field are caught); current catalog passes.
- docs: correct the conformance how-to's stale 'base standard 11.2' reference
  to the self-contained documentation standard 11.

Closes #46.
…dard

The 18 adoption sequence still described the design-log freeze, the
ownership/convergence lifts, and the OVERVIEW de-scaffolding as not-yet-done,
but they have all landed this cycle. Update the steps to reflect reality so the
standard does not understate its own progress.
The real Wesley is a Rust Cargo workspace (crates/wesley-cli native CLI), but
continuum/wesley/ and the demo manifest target a removed JS-era layout
(@wesley/core, packages/wesley-host-node/bin/wesley.mjs). This supersedes the
audit's earlier 'vendor @wesley/core in CI' item: there is no JS @wesley/core
to vendor and the receipt/settlement fixture-witnessed evidence is not runnable
against current Wesley. Tracked in #47; needs an architecture decision before
the dependent docs/manifests are touched.
…t dead duplication

Per Rust Wesley's own docs (docs/features/ttd-protocol-compiler.md), the TTD
protocol compiler was extracted out of generic Wesley INTO continuum/wesley/ttd/
— that tree is its authoritative home, and Rust Wesley has no TTD impl or zod
emitter. The echo/warp-ttd targets and receipt/settlement witness logic are
Continuum-specific too. The drift is that this JS module lost its base platform
when Wesley went Rust and dropped the Node host; the fix is re-platforming, not
deletion. Corrected the audit note and issue #47 accordingly.
…Node deleted)

I had been grepping and inferring. Reading ~/git/wesley directly:
- Wesley ships on crates.io: 'cargo install wesley-cli' (bin 'wesley'). My
  earlier 'not on crates.io' claim (citing Continuum's stale packet 0026) was
  wrong.
- The legacy Node surface (packages/wesley-core, wesley-cli, wesley-host-node)
  is deleted per the retirement ledger; surviving bun/deno/browser hosts carry
  no JS core, so continuum/wesley cannot run on them.
- zod and domain-target dispatch were deleted and reassigned to external target
  modules (Continuum's job; Wesley is domain-empty).
- A Rust module-capability-registry already exists (crates/wesley-core/
  src/domain/capability.rs) as the extension landing spot.

Updated the audit #47 note and issue #47 accordingly: continuum/wesley is the
reference to port FROM into a Rust target, with qw invoking the crates.io
wesley binary — not a sibling Node checkout.
continuum/wesley/ was a Node-hosted Wesley extension built on the deleted
@wesley/core / wesley-host-node packages. The real Wesley is a Rust crate
(installed via 'cargo install wesley-cli', v0.1.0). Nothing in the repo
imported it (verified across apps/, scripts/, docs/, CI).

- Removed all 64 tracked files plus the empty leftover wesley/ dirs.
- Registry: downgraded receipt and settlement families from fixture-witnessed
  to authored, since the witness suite that backed that claim lived in
  continuum/wesley/test and is gone. Open cut now points at re-establishing the
  profile on the Rust wesley-cli target.
- Capabilities to re-platform (TTD compiler, zod/registry codegen, echo /
  warp-ttd targets, witness) tracked on issue #47.

Warp suite 28 pass / 0 fail; docs gate 0/0.
qw init can now resolve the crates.io-installed wesley binary instead of a
sibling Node .mjs. New toolchain.wesley.install.source 'crate':

- resolves the binary by name from PATH (cargo install wesley-cli), errors
  with cargo guidance if absent, invokes it natively (wesley emit ...), and
  records a resolution receipt under .warpspace (no staging).
- reports native-binary runner so no Node runtime is required.

Demo manifest flipped to it (wesley-cli 0.1.0, native-rust), dropping the
dead @wesley/host-node entrypoint. Demo projections trimmed to typescript
since the zod/echo-ir/warp-ttd compilers lived in the deleted continuum/wesley
module (deferred to #47). Docs updated (demo README, apps/warp README/VISION,
GETTING_STARTED) to describe cargo install wesley-cli.

Test-first: two new warp-init tests (resolve-and-invoke; not-installed error).
Warp suite 30 pass / 0 fail; docs gate 0/0.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@APP_GLOSSARY.md`:
- Around line 9-11: The APP_GLOSSARY.md note is creating a second durable
vocabulary authority alongside docs/reference/glossary.md. Move the app-specific
noun mappings into an appropriate reader-task page under docs/, and make
APP_GLOSSARY.md only a redirect or remove it entirely so the glossary ownership
stays with the shared glossary and there is no shadow vocabulary.

In `@apps/warp/src/init.mjs`:
- Around line 723-739: The absolute-path branch in defaultResolveBinary() is
only checking that the path exists, so non-executable files can still be treated
as valid binaries. Update the path.isAbsolute(binName) case to validate
executability the same way the PATH lookup does by checking X_OK before
returning the path, and only return the absolute path when it is both present
and executable.
- Around line 530-572: In the source === 'crate' branch of init.mjs, the install
receipt currently records wesleySpec.version as if it were the version of the
binary found on PATH. Update the Wesley install flow to inspect the resolved
binary from resolveBinary(binName) and capture its actual version before writing
the receipt. Then use that observed version consistently in the receipt object
and returned install metadata instead of trusting the spec’s version fallback.

In `@apps/warp/test/warp-warpspace.test.mjs`:
- Around line 602-615: Re-add assertions in warp-warpspace.test.mjs to verify
usage-error stderr does not contain stack-trace output, since the current checks
in the help/usage block only validate exit codes and empty stderr. Update the
tests around runCli for the relevant command paths (including warpspace lock and
other usage errors) to explicitly assert that stderr does not include node:,
ENOENT, or stack trace markers, using the existing runCli helper and the
surrounding help/usage assertions as the anchor.

In `@CHANGELOG.md`:
- Around line 78-87: The quickstart documentation still references retired qw
commands, so update GETTING_STARTED.md to remove or replace the stale qw
build/qw doctor/qw update step with the current workflow. Check the affected
quickstart section and align it with the audited source of truth, keeping the
guidance consistent with the actual commands users should run.

In `@docs/DOCUMENTATION_POLICY.md`:
- Around line 219-223: The policy text currently references `intents` in the
routing guidance without defining a controlled vocabulary, so update
DOCUMENTATION_POLICY to either explicitly declare the allowed `intents` set or
remove `intents` from the guidance entirely. Use the surrounding policy section
that already defines `audiences` and `related`, and make the change in the same
documentation area so `docs/catalog.yaml` entries have a clear source of truth.

In `@docs/method/DOCUMENTATION_AUDIT.md`:
- Around line 290-353: Fix the markdownlint spacing violations in the audit
section by inserting blank lines around every heading and table so the
`Signposts`, `Reader-task shelves`, `Keep as archive`, `Trash`, and subsequent
section headings comply with `DOCUMENTATION_AUDIT.md` formatting. Also break up
the long `Still open` architecture-drift block into a separate tracked note or
`docs/method/backlog/` entry, and replace the inline novella here with a short
pointer; use the existing `Still open`/`Architecture drift` content and the
`continuum/wesley/` / `wesley-cli` symbols to relocate it cleanly.

In `@docs/method/release-runbook.md`:
- Around line 1924-1946: The “Adoption checklist for existing repos” list is too
repetitive because many items start with “Add.” Update the checklist language in
the release-runbook section by varying the verbs across the numbered steps while
keeping the meaning unchanged. Use distinctive action verbs for the relevant
entries (for example, around the `.continuum/release.yml`, `RELEASE.md`,
validation, workflow, verification, and retrospective items) so the list reads
more naturally and avoids monotony.

In `@docs/reference/qw-cli.md`:
- Around line 1-4: The document front matter for the qw CLI reference is missing
required Continuum Documentation Standard metadata. Update the front matter in
the qw CLI reference page to include the missing audiences and intents keys so
the docs catalog and gate can classify it correctly, keeping the existing title
and status fields in the same front-matter block.
- Around line 87-89: The “Commands that do not exist yet” note in qw-cli.md
should stay aligned with the current implementation of qw build, top-level qw
doctor, and qw update, and it should point readers to an explicit tracking
source. Update this section so it continues to clearly distinguish the
implemented qw warpspace doctor command from the unimplemented top-level doctor,
and add a reference to the relevant VISION.md section or a tracking issue so the
status can be maintained as commands evolve.

In `@scripts/docs-lint.mjs`:
- Around line 172-177: The docs/catalog.yaml path validation in docs-lint.mjs
only checks that resolve(DOCS, p.path) exists and is a file, so it can still
allow paths that escape the docs directory. Update the validation around
catalogTarget to verify the resolved path stays within DOCS before calling
statSync, using the existing err handling in the catalog.yaml path check. Keep
the containment guard in the same flow as the current existsSync/statSync checks
so entries like ../README_FULL.md are rejected by the docs/catalog.yaml
reader-task boundary enforcement.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0383e8bd-ec4b-4157-875f-db3952bdd53f

📥 Commits

Reviewing files that changed from the base of the PR and between d22e231 and cf9a52f.

📒 Files selected for processing (140)
  • .continuum/release.yml
  • .github/workflows/ci.yml
  • AGENTS.md
  • APP_GLOSSARY.md
  • CHANGELOG.md
  • CONTRIBUTING.md
  • GoodIdeas.md
  • METHOD.md
  • README_FULL.md
  • RELEASE.md
  • apps/warp/README.md
  • apps/warp/VISION.md
  • apps/warp/src/init.mjs
  • apps/warp/test/warp-init.test.mjs
  • apps/warp/test/warp-warpspace.test.mjs
  • docs/DOCUMENTATION_POLICY.md
  • docs/GETTING_STARTED.md
  • docs/OVERVIEW.md
  • docs/catalog.yaml
  • docs/contract-family-registry.md
  • docs/design/0001-lane-ontology-and-merge-temporality/README.md
  • docs/design/0002-kairotic-merge-and-derived-lanes/README.md
  • docs/design/0003-braid-witness-and-local-optic-neighborhoods/README.md
  • docs/design/0004-minimal-braid-witness-for-level-2/README.md
  • docs/design/0005-alignment-structure-and-outcome/README.md
  • docs/design/0006-focus-boundary-structure/README.md
  • docs/design/0007-footprint-as-focus-boundary/README.md
  • docs/design/0008-affect-versus-reintegration-boundary/README.md
  • docs/design/0009-optic-clarification-of-affect-and-reintegration/README.md
  • docs/design/0010-residual-reintegration-structure/README.md
  • docs/design/0011-witness-core-and-receipt-shell/README.md
  • docs/design/0012-compatibility-obligations-versus-evidence/README.md
  • docs/design/0013-witness-refinement-and-equivalence/README.md
  • docs/design/0014-shared-noun-ownership-map/README.md
  • docs/design/0014-shared-noun-ownership-map/backlog-origin.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/README.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/backlog-origin.md
  • docs/design/0016-engine-local-vs-shared-observer-contract/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/backlog-origin.md
  • docs/design/0018-one-graph-two-temperatures-and-runtime-handoff/README.md
  • docs/design/0019-echo-against-continuum-invariants/README.md
  • docs/design/0020-shared-admission-and-policy-publication/README.md
  • docs/design/0021-family-versions-vs-repo-versions/README.md
  • docs/design/0022-neighborhood-core-and-admission-outcome-family/README.md
  • docs/design/0023-warpspace-bootstrap-and-stack-release-manifest/README.md
  • docs/design/0024-warp-cli-and-warpspace-toml/README.md
  • docs/design/0025-warp-native-distribution-and-node-runtime-policy/README.md
  • docs/design/0026-warp-package-sources-and-local-packages-site/README.md
  • docs/design/0027-witnessed-causal-suffix-sync/README.md
  • docs/design/0028-minimum-runtime-boundary-contract-family/README.md
  • docs/design/0029-cross-repo-contract-family-registry/README.md
  • docs/design/0030-continuum-spine-protocol-report/README.md
  • docs/design/0031-continuum-compendium-v1/README.md
  • docs/design/0032-tachyon-warpspace-resolution/README.md
  • docs/design/0033-warpspace-runtime-projection-and-qw-install/README.md
  • docs/design/0034-agent-neutral-edict-participation/README.md
  • docs/design/0035-continuum-stack-convergence/README.md
  • docs/design/0036-continuum-stack-release-roadmap/README.md
  • docs/design/0037-continuum-stack-project-slice-plan/README.md
  • docs/design/README.md
  • docs/explanation/protocol-profiles.md
  • docs/how-to/publish-runtime-evidence-for-a-contract-family.md
  • docs/index.md
  • docs/method/DOCUMENTATION_AUDIT.md
  • docs/method/process.md
  • docs/method/release-runbook.md
  • docs/method/release.md
  • docs/reference/convergence.md
  • docs/reference/glossary.md
  • docs/reference/ownership-map.md
  • docs/reference/qw-cli.md
  • docs/releases/demo/README.md
  • docs/releases/demo/continuum-stack-release.json
  • scripts/docs-lint.mjs
  • scripts/setup-hooks.sh
  • wesley/README.md
  • wesley/commands/contract.mjs
  • wesley/commands/drift-watch.mjs
  • wesley/commands/observer-plan.mjs
  • wesley/commands/witness-continuum.mjs
  • wesley/commands/witness.mjs
  • wesley/continuum-cli-module.mjs
  • wesley/profile/contract-bundle.mjs
  • wesley/profile/index.mjs
  • wesley/profile/judgment-profile.mjs
  • wesley/profile/scopes.mjs
  • wesley/support/continuum-compile-targets.mjs
  • wesley/support/continuum-publication-boundary.mjs
  • wesley/support/continuum-receipt-family-witness.mjs
  • wesley/support/continuum-settlement-family-witness.mjs
  • wesley/support/continuum-witness-report.mjs
  • wesley/support/continuum-witness-support.mjs
  • wesley/support/graphql-contract-names.mjs
  • wesley/support/graphql-from-wesley.mjs
  • wesley/support/realization-integrity.mjs
  • wesley/support/wesley-deps.mjs
  • wesley/test/continuum-compile-targets.test.mjs
  • wesley/test/contract-bundle.test.mjs
  • wesley/test/contract.bats
  • wesley/test/drift-watch.bats
  • wesley/test/fixtures/continuum/receipt-family/README.md
  • wesley/test/fixtures/continuum/receipt-family/boundary.json
  • wesley/test/fixtures/continuum/receipt-family/invalid.json
  • wesley/test/fixtures/continuum/receipt-family/minimal.json
  • wesley/test/fixtures/continuum/receipt-family/receipt-vs-witness.json
  • wesley/test/fixtures/continuum/receipt-family/roundtrip.json
  • wesley/test/fixtures/continuum/settlement-family/README.md
  • wesley/test/fixtures/continuum/settlement-family/boundary.json
  • wesley/test/fixtures/continuum/settlement-family/decision-separation.json
  • wesley/test/fixtures/continuum/settlement-family/minimal.json
  • wesley/test/observer-plan.bats
  • wesley/test/observer-plan.test.mjs
  • wesley/test/profile.test.mjs
  • wesley/test/runtime-boundary-invariants.test.mjs
  • wesley/test/test_helper.bash
  • wesley/test/witness-continuum.bats
  • wesley/ttd/ast.mjs
  • wesley/ttd/codegen/index.mjs
  • wesley/ttd/codegen/orchestrator.mjs
  • wesley/ttd/codegen/ts-registry.mjs
  • wesley/ttd/codegen/ts-types.mjs
  • wesley/ttd/codegen/ts-zod.mjs
  • wesley/ttd/directives.mjs
  • wesley/ttd/extractor.mjs
  • wesley/ttd/hasher.mjs
  • wesley/ttd/index.mjs
  • wesley/ttd/invariants/ast.mjs
  • wesley/ttd/invariants/golden.mjs
  • wesley/ttd/invariants/index.mjs
  • wesley/ttd/invariants/lexer.mjs
  • wesley/ttd/invariants/obligations.mjs
  • wesley/ttd/invariants/parser.mjs
  • wesley/ttd/invariants/verifier.mjs
  • wesley/ttd/invariants/vm.mjs
  • wesley/ttd/manifest.mjs
  • wesley/ttd/schemas/README.md
  • wesley/ttd/schemas/ttd-ir.schema.json
  • wesley/ttd/validation.mjs
  • wesley/utils/observer-plan.mjs
💤 Files with no reviewable changes (65)
  • wesley/README.md
  • wesley/test/fixtures/continuum/settlement-family/README.md
  • wesley/test/fixtures/continuum/settlement-family/decision-separation.json
  • wesley/test/fixtures/continuum/receipt-family/minimal.json
  • wesley/test/fixtures/continuum/settlement-family/minimal.json
  • wesley/test/fixtures/continuum/receipt-family/roundtrip.json
  • wesley/test/fixtures/continuum/settlement-family/boundary.json
  • wesley/test/fixtures/continuum/receipt-family/invalid.json
  • wesley/test/fixtures/continuum/receipt-family/boundary.json
  • wesley/test/profile.test.mjs
  • wesley/ttd/codegen/index.mjs
  • GoodIdeas.md
  • wesley/ttd/codegen/orchestrator.mjs
  • wesley/ttd/codegen/ts-registry.mjs
  • wesley/support/continuum-receipt-family-witness.mjs
  • wesley/support/continuum-settlement-family-witness.mjs
  • wesley/ttd/invariants/parser.mjs
  • wesley/ttd/hasher.mjs
  • wesley/ttd/invariants/index.mjs
  • wesley/ttd/extractor.mjs
  • wesley/ttd/invariants/ast.mjs
  • wesley/test/witness-continuum.bats
  • wesley/support/graphql-contract-names.mjs
  • wesley/support/continuum-publication-boundary.mjs
  • wesley/test/contract-bundle.test.mjs
  • wesley/test/test_helper.bash
  • wesley/ttd/manifest.mjs
  • wesley/test/fixtures/continuum/receipt-family/receipt-vs-witness.json
  • wesley/commands/observer-plan.mjs
  • wesley/test/contract.bats
  • wesley/test/observer-plan.test.mjs
  • wesley/support/continuum-witness-report.mjs
  • wesley/ttd/directives.mjs
  • wesley/support/continuum-compile-targets.mjs
  • wesley/ttd/invariants/golden.mjs
  • wesley/test/fixtures/continuum/receipt-family/README.md
  • wesley/ttd/ast.mjs
  • wesley/profile/index.mjs
  • wesley/ttd/invariants/vm.mjs
  • wesley/commands/witness.mjs
  • wesley/ttd/schemas/ttd-ir.schema.json
  • wesley/support/realization-integrity.mjs
  • wesley/commands/contract.mjs
  • wesley/ttd/validation.mjs
  • wesley/test/continuum-compile-targets.test.mjs
  • wesley/ttd/schemas/README.md
  • wesley/ttd/invariants/lexer.mjs
  • wesley/support/graphql-from-wesley.mjs
  • wesley/profile/judgment-profile.mjs
  • wesley/utils/observer-plan.mjs
  • wesley/profile/contract-bundle.mjs
  • wesley/test/runtime-boundary-invariants.test.mjs
  • wesley/ttd/invariants/verifier.mjs
  • wesley/test/observer-plan.bats
  • wesley/continuum-cli-module.mjs
  • wesley/support/continuum-witness-support.mjs
  • wesley/support/wesley-deps.mjs
  • wesley/ttd/index.mjs
  • wesley/ttd/invariants/obligations.mjs
  • wesley/ttd/codegen/ts-zod.mjs
  • wesley/commands/drift-watch.mjs
  • wesley/profile/scopes.mjs
  • wesley/test/drift-watch.bats
  • wesley/ttd/codegen/ts-types.mjs
  • wesley/commands/witness-continuum.mjs
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
docs/**/*

📄 CodeRabbit inference engine (AGENTS.md)

docs/**/*: All documentation must follow the Continuum Documentation Standard in docs/DOCUMENTATION_POLICY.md.
Durable truth must live in reader-task pages under docs/ organized by reader need, not in the design log.

Files:

  • docs/design/0002-kairotic-merge-and-derived-lanes/README.md
  • docs/design/0014-shared-noun-ownership-map/backlog-origin.md
  • docs/design/0034-agent-neutral-edict-participation/README.md
  • docs/design/0008-affect-versus-reintegration-boundary/README.md
  • docs/design/0026-warp-package-sources-and-local-packages-site/README.md
  • docs/design/0033-warpspace-runtime-projection-and-qw-install/README.md
  • docs/design/0013-witness-refinement-and-equivalence/README.md
  • docs/design/0001-lane-ontology-and-merge-temporality/README.md
  • docs/design/0032-tachyon-warpspace-resolution/README.md
  • docs/design/0023-warpspace-bootstrap-and-stack-release-manifest/README.md
  • docs/design/0014-shared-noun-ownership-map/README.md
  • docs/design/0024-warp-cli-and-warpspace-toml/README.md
  • docs/design/0007-footprint-as-focus-boundary/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/backlog-origin.md
  • docs/design/0012-compatibility-obligations-versus-evidence/README.md
  • docs/design/0025-warp-native-distribution-and-node-runtime-policy/README.md
  • docs/design/0027-witnessed-causal-suffix-sync/README.md
  • docs/how-to/publish-runtime-evidence-for-a-contract-family.md
  • docs/design/0035-continuum-stack-convergence/README.md
  • docs/design/0011-witness-core-and-receipt-shell/README.md
  • docs/design/0028-minimum-runtime-boundary-contract-family/README.md
  • docs/design/0019-echo-against-continuum-invariants/README.md
  • docs/design/0016-engine-local-vs-shared-observer-contract/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/README.md
  • docs/design/0009-optic-clarification-of-affect-and-reintegration/README.md
  • docs/design/0031-continuum-compendium-v1/README.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/backlog-origin.md
  • docs/method/process.md
  • docs/design/0006-focus-boundary-structure/README.md
  • docs/design/0010-residual-reintegration-structure/README.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/README.md
  • docs/reference/glossary.md
  • docs/design/0029-cross-repo-contract-family-registry/README.md
  • docs/method/release.md
  • docs/design/0022-neighborhood-core-and-admission-outcome-family/README.md
  • docs/design/README.md
  • docs/reference/ownership-map.md
  • docs/design/0021-family-versions-vs-repo-versions/README.md
  • docs/design/0003-braid-witness-and-local-optic-neighborhoods/README.md
  • docs/design/0037-continuum-stack-project-slice-plan/README.md
  • docs/design/0030-continuum-spine-protocol-report/README.md
  • docs/releases/demo/README.md
  • docs/explanation/protocol-profiles.md
  • docs/design/0018-one-graph-two-temperatures-and-runtime-handoff/README.md
  • docs/design/0005-alignment-structure-and-outcome/README.md
  • docs/design/0004-minimal-braid-witness-for-level-2/README.md
  • docs/contract-family-registry.md
  • docs/reference/qw-cli.md
  • docs/design/0020-shared-admission-and-policy-publication/README.md
  • docs/design/0036-continuum-stack-release-roadmap/README.md
  • docs/GETTING_STARTED.md
  • docs/catalog.yaml
  • docs/index.md
  • docs/reference/convergence.md
  • docs/releases/demo/continuum-stack-release.json
  • docs/OVERVIEW.md
  • docs/DOCUMENTATION_POLICY.md
  • docs/method/DOCUMENTATION_AUDIT.md
  • docs/method/release-runbook.md
docs/design/**

📄 CodeRabbit inference engine (AGENTS.md)

docs/design/ is a frozen historical decision log; do not add new packets there.

Files:

  • docs/design/0002-kairotic-merge-and-derived-lanes/README.md
  • docs/design/0014-shared-noun-ownership-map/backlog-origin.md
  • docs/design/0034-agent-neutral-edict-participation/README.md
  • docs/design/0008-affect-versus-reintegration-boundary/README.md
  • docs/design/0026-warp-package-sources-and-local-packages-site/README.md
  • docs/design/0033-warpspace-runtime-projection-and-qw-install/README.md
  • docs/design/0013-witness-refinement-and-equivalence/README.md
  • docs/design/0001-lane-ontology-and-merge-temporality/README.md
  • docs/design/0032-tachyon-warpspace-resolution/README.md
  • docs/design/0023-warpspace-bootstrap-and-stack-release-manifest/README.md
  • docs/design/0014-shared-noun-ownership-map/README.md
  • docs/design/0024-warp-cli-and-warpspace-toml/README.md
  • docs/design/0007-footprint-as-focus-boundary/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/backlog-origin.md
  • docs/design/0012-compatibility-obligations-versus-evidence/README.md
  • docs/design/0025-warp-native-distribution-and-node-runtime-policy/README.md
  • docs/design/0027-witnessed-causal-suffix-sync/README.md
  • docs/design/0035-continuum-stack-convergence/README.md
  • docs/design/0011-witness-core-and-receipt-shell/README.md
  • docs/design/0028-minimum-runtime-boundary-contract-family/README.md
  • docs/design/0019-echo-against-continuum-invariants/README.md
  • docs/design/0016-engine-local-vs-shared-observer-contract/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/README.md
  • docs/design/0009-optic-clarification-of-affect-and-reintegration/README.md
  • docs/design/0031-continuum-compendium-v1/README.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/backlog-origin.md
  • docs/design/0006-focus-boundary-structure/README.md
  • docs/design/0010-residual-reintegration-structure/README.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/README.md
  • docs/design/0029-cross-repo-contract-family-registry/README.md
  • docs/design/0022-neighborhood-core-and-admission-outcome-family/README.md
  • docs/design/README.md
  • docs/design/0021-family-versions-vs-repo-versions/README.md
  • docs/design/0003-braid-witness-and-local-optic-neighborhoods/README.md
  • docs/design/0037-continuum-stack-project-slice-plan/README.md
  • docs/design/0030-continuum-spine-protocol-report/README.md
  • docs/design/0018-one-graph-two-temperatures-and-runtime-handoff/README.md
  • docs/design/0005-alignment-structure-and-outcome/README.md
  • docs/design/0004-minimal-braid-witness-for-level-2/README.md
  • docs/design/0020-shared-admission-and-policy-publication/README.md
  • docs/design/0036-continuum-stack-release-roadmap/README.md
**

⚙️ CodeRabbit configuration file

**: # AGENTS.md

Role

Continuum is the coordination spine for the active stack. It does not own a
runtime implementation, a substrate, or a parallel ontology. It owns shared
truth across Echo, git-warp, warp-ttd, and Wesley.

Git Safety

  • Never amend commits.
  • Never rebase.
  • Never force git operations.
  • Stage only the files written in the current turn.
  • Commit each completed slice in the same turn.

Process

  • Read METHOD.md before changing structure.
  • Keep active work in docs/design/.
  • Keep concrete work in docs/method/backlog/.
  • Keep retros in docs/method/retro/.
  • Update docs/BEARING.md and docs/VISION.md
    only at cycle boundaries.

Doctrine

  • Continuum owns coordination truth, not substrate truth.
  • Shared nouns need one authored home and explicit publication boundaries.
  • Cross-repo witness and compatibility truth beats hand-wavy alignment claims.
  • No shadow schemas, no shadow vocabularies, no shadow ownership.

Files:

  • docs/design/0002-kairotic-merge-and-derived-lanes/README.md
  • docs/design/0014-shared-noun-ownership-map/backlog-origin.md
  • docs/design/0034-agent-neutral-edict-participation/README.md
  • docs/design/0008-affect-versus-reintegration-boundary/README.md
  • docs/design/0026-warp-package-sources-and-local-packages-site/README.md
  • docs/design/0033-warpspace-runtime-projection-and-qw-install/README.md
  • docs/design/0013-witness-refinement-and-equivalence/README.md
  • docs/design/0001-lane-ontology-and-merge-temporality/README.md
  • docs/design/0032-tachyon-warpspace-resolution/README.md
  • docs/design/0023-warpspace-bootstrap-and-stack-release-manifest/README.md
  • docs/design/0014-shared-noun-ownership-map/README.md
  • docs/design/0024-warp-cli-and-warpspace-toml/README.md
  • docs/design/0007-footprint-as-focus-boundary/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/backlog-origin.md
  • docs/design/0012-compatibility-obligations-versus-evidence/README.md
  • docs/design/0025-warp-native-distribution-and-node-runtime-policy/README.md
  • docs/design/0027-witnessed-causal-suffix-sync/README.md
  • docs/how-to/publish-runtime-evidence-for-a-contract-family.md
  • docs/design/0035-continuum-stack-convergence/README.md
  • docs/design/0011-witness-core-and-receipt-shell/README.md
  • docs/design/0028-minimum-runtime-boundary-contract-family/README.md
  • docs/design/0019-echo-against-continuum-invariants/README.md
  • docs/design/0016-engine-local-vs-shared-observer-contract/README.md
  • docs/design/0017-settlement-publication-and-shared-reintegration/README.md
  • APP_GLOSSARY.md
  • docs/design/0009-optic-clarification-of-affect-and-reintegration/README.md
  • docs/design/0031-continuum-compendium-v1/README.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/backlog-origin.md
  • docs/method/process.md
  • docs/design/0006-focus-boundary-structure/README.md
  • docs/design/0010-residual-reintegration-structure/README.md
  • RELEASE.md
  • docs/design/0015-echo-wesley-warp-ttd-proof-plan/README.md
  • docs/reference/glossary.md
  • docs/design/0029-cross-repo-contract-family-registry/README.md
  • docs/method/release.md
  • docs/design/0022-neighborhood-core-and-admission-outcome-family/README.md
  • docs/design/README.md
  • CONTRIBUTING.md
  • docs/reference/ownership-map.md
  • docs/design/0021-family-versions-vs-repo-versions/README.md
  • docs/design/0003-braid-witness-and-local-optic-neighborhoods/README.md
  • apps/warp/README.md
  • docs/design/0037-continuum-stack-project-slice-plan/README.md
  • docs/design/0030-continuum-spine-protocol-report/README.md
  • METHOD.md
  • docs/releases/demo/README.md
  • docs/explanation/protocol-profiles.md
  • docs/design/0018-one-graph-two-temperatures-and-runtime-handoff/README.md
  • docs/design/0005-alignment-structure-and-outcome/README.md
  • docs/design/0004-minimal-braid-witness-for-level-2/README.md
  • scripts/setup-hooks.sh
  • docs/contract-family-registry.md
  • docs/reference/qw-cli.md
  • docs/design/0020-shared-admission-and-policy-publication/README.md
  • docs/design/0036-continuum-stack-release-roadmap/README.md
  • docs/GETTING_STARTED.md
  • docs/catalog.yaml
  • AGENTS.md
  • docs/index.md
  • README_FULL.md
  • apps/warp/VISION.md
  • docs/reference/convergence.md
  • docs/releases/demo/continuum-stack-release.json
  • scripts/docs-lint.mjs
  • apps/warp/test/warp-warpspace.test.mjs
  • apps/warp/src/init.mjs
  • docs/OVERVIEW.md
  • apps/warp/test/warp-init.test.mjs
  • docs/DOCUMENTATION_POLICY.md
  • CHANGELOG.md
  • docs/method/DOCUMENTATION_AUDIT.md
  • docs/method/release-runbook.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: flyingrobots/continuum

Timestamp: 2026-06-27T08:45:45.152Z
Learning: Record new decisions as a one-screen ADR-lite note or a `CHANGELOG.md` line instead of adding them to the design log.
Learnt from: CR
Repo: flyingrobots/continuum

Timestamp: 2026-06-27T08:45:45.152Z
Learning: Run the documentation gate (`node scripts/docs-lint.mjs`) before committing documentation changes.
Learnt from: CR
Repo: flyingrobots/continuum

Timestamp: 2026-06-27T08:45:45.152Z
Learning: If a test looks wrong, do not alter, skip, or circumvent it to unblock yourself; flag it instead.
Learnt from: CR
Repo: flyingrobots/continuum

Timestamp: 2026-06-27T08:45:45.152Z
Learning: Continuum owns coordination truth, not substrate truth; shared nouns need one authored home and explicit publication boundaries; cross-repo witness and compatibility truth beats hand-wavy alignment claims; no shadow schemas, no shadow vocabularies, no shadow ownership.
🪛 LanguageTool
docs/DOCUMENTATION_POLICY.md

[style] ~180-~180: Consider using “who” when you are referring to a person instead of an object.
Context: ...d, reasoned answer — it is the governor that stops sprawl. Add a page type only when...

(THAT_WHO)

docs/method/DOCUMENTATION_AUDIT.md

[uncategorized] ~9-~9: The official name of this software platform is spelled with a capital “H”.
Context: ..., apps/warp/, wesley/, scripts/, .github/`, lock/manifest JSON) — never against ...

(GITHUB)


[grammar] ~45-~45: Ensure spelling is correct
Context: ..., AdmissionOutcomeKind; ids 127–128 (schemas/continuum-neighborhood-core-family.graphql#34-66@2d09038). - runtime-boundary family — IntentEnvelop...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[uncategorized] ~53-~53: The official name of this software platform is spelled with a capital “H”.
Context: ...est apps/warp/test/** on Node 22 & 24 (.github/workflows/ci.yml#16-40@2d09038`). **Wes...

(GITHUB)


[uncategorized] ~70-~70: The official name of this software platform is spelled with a capital “H”.
Context: ...t files exist; CI uses the same runner (.github/workflows/ci.yml#40@2d09038). | | Echo...

(GITHUB)


[style] ~116-~116: Consider an alternative for the overused word “exactly”.
Context: ... source-checkable here. | Fit: this is exactly what the policy's invariant page type...

(EXACTLY_PRECISELY)


[uncategorized] ~191-~191: The official name of this software platform is spelled with a capital “H”.
Context: ...** (trim) - ✅ Check commands match CI (.github/workflows/ci.yml#25,40@2d09038); pre-c...

(GITHUB)


[uncategorized] ~278-~278: The official name of this software platform is spelled with a capital “H”.
Context: ...st/but CI only runsapps/warp/test (.github/workflows/ci.yml#402d09038`). The wesl...

(GITHUB)

docs/method/release-runbook.md

[style] ~22-~22: Consider removing “of” to be more concise
Context: ...doctrine A valid Continuum release has all of the following. 1. A reason. Planned rel...

(ALL_OF_THE)


[grammar] ~241-~241: Ensure spelling is correct
Context: ... release evidence is captured. ### 3.8 retrospectived A release is retrospectived when: - rel...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[style] ~679-~679: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...r changed? - What public API changed? - What CLI behavior changed? - What docs truth...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~680-~680: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...changed? - What CLI behavior changed? - What docs truth changed? - What operator wor...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~681-~681: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...r changed? - What docs truth changed? - What operator workflow changed? - What archi...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~682-~682: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ed? - What operator workflow changed? - What architecture boundary changed? - What d...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~683-~683: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...- What architecture boundary changed? - What dependency or package posture changed? ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~684-~684: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ependency or package posture changed? - What release tooling changed? - What did we ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~685-~685: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...nged? - What release tooling changed? - What did we intend to ship but did not? - Wh...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~686-~686: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...at did we intend to ship but did not? - What slipped? - What accidentally expanded? ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~687-~687: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... to ship but did not? - What slipped? - What accidentally expanded? Then update: -...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~717-~717: The official name of this software platform is spelled with a capital “H”.
Context: ...orkflow changes. | | Contributor docs | .github/CONTRIBUTING.md | Contribution or revi...

(GITHUB)


[style] ~1282-~1282: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... allowed only when autotag cannot run. Manual tagging must not bypass failed gates. ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~1935-~1935: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...md`. 7. Add release-prep validation. 8. Add final preflight. 9. Add autotag workflo...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~1938-~1938: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...workflow. 10. Add publish workflow. 11. Add verification commands. 12. Add retrospe...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 markdownlint-cli2 (0.22.1)
docs/method/DOCUMENTATION_AUDIT.md

[warning] 292-292: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 295-295: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 296-296: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)


[warning] 309-309: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 313-313: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 317-317: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 344-344: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


[warning] 352-352: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🔇 Additional comments (111)
docs/design/0002-kairotic-merge-and-derived-lanes/README.md (1)

3-3: LGTM!

docs/design/0014-shared-noun-ownership-map/backlog-origin.md (1)

3-3: LGTM!

docs/design/0034-agent-neutral-edict-participation/README.md (1)

3-3: LGTM!

docs/design/0008-affect-versus-reintegration-boundary/README.md (1)

3-3: LGTM!

docs/design/0005-alignment-structure-and-outcome/README.md (1)

3-3: LGTM!

docs/design/0004-minimal-braid-witness-for-level-2/README.md (1)

3-3: LGTM!

scripts/setup-hooks.sh (1)

1-6: Pre-commit hook is wired up correctly. The .githooks/pre-commit file exists, is executable, and runs scripts/docs-lint.mjs.

docs/contract-family-registry.md (2)

53-54: No change needed here. The continuum/wesley removal / issue #47 wording matches the rest of the repo, and wesley-cli is the current Rust CLI target referenced by the docs and demo.


93-94: No downstream status consumer to guard here. scripts/docs-lint.mjs only checks registry/schema coverage and schema paths; it does not parse the registry status values.

			> Likely an incorrect or invalid review comment.
docs/design/0026-warp-package-sources-and-local-packages-site/README.md (1)

3-3: LGTM!

docs/design/0033-warpspace-runtime-projection-and-qw-install/README.md (1)

3-3: LGTM!

docs/design/0013-witness-refinement-and-equivalence/README.md (1)

3-3: LGTM!

docs/design/0001-lane-ontology-and-merge-temporality/README.md (1)

3-3: LGTM!

docs/design/0032-tachyon-warpspace-resolution/README.md (1)

3-3: LGTM!

docs/design/0020-shared-admission-and-policy-publication/README.md (1)

3-3: LGTM!

docs/design/0036-continuum-stack-release-roadmap/README.md (1)

3-3: LGTM!

docs/reference/qw-cli.md (5)

16-18: 🎯 Functional Correctness

Verify qw top-level commands match implementation.

The document states top-level commands are init, install, and warpspace <subcommand>, with any other command printing usage and exiting non-zero. Verify this against the actual argument parser in apps/warp/src/init.mjs or entry point to ensure the command surface hasn't drifted.


22-25: 🎯 Functional Correctness

Verify qw init flag surface against implementation.

The documented flags for qw init need to match the actual implementation. Specifically verify:

  • --profile accepts demo and other built-in profiles
  • --manifest path handling for continuum-stack-release.json
  • --authority-root override behavior
  • --skip-generate Wesley invocation skip
  • --force non-empty directory behavior

44-47: 🎯 Functional Correctness

Verify qw install flag surface against implementation.

Confirm the positional [warpspace.toml] and flags --manifest, --root, --lock, --allow-dirty, --skip-sync match the actual parser. The note "positional or --manifest, not both" is a specific constraint that should be enforced in code.


69-75: 🎯 Functional Correctness

Verify qw warpspace subcommands against implementation.

The subcommands lock, verify, sync, doctor, locate and their specific flag shapes need to match the implementation. locate in particular has the most flags (--lock, --root, --cwd, --basis, --json) — verify these are all implemented and not aspirational.


93-99: 🎯 Functional Correctness

Verify example commands execute successfully.

The examples section provides concrete commands. Verify these work in a clean environment:

  • qw init my-app --profile demo — requires demo profile to exist
  • qw install — requires prior init or existing warpspace.toml
  • qw warpspace lock ... — path docs/warpspaces/jedit-echo-dev.toml must exist
  • qw warpspace sync ... — requires the lock file from prior command
  • qw warpspace verify ... — requires synced state

Consider marking these as "Example paths; adjust to your environment" or verify they match documented tutorial paths.

docs/design/0023-warpspace-bootstrap-and-stack-release-manifest/README.md (1)

3-3: LGTM!

docs/design/0014-shared-noun-ownership-map/README.md (1)

3-3: LGTM!

docs/design/0024-warp-cli-and-warpspace-toml/README.md (1)

3-3: LGTM!

docs/design/0007-footprint-as-focus-boundary/README.md (1)

3-3: LGTM!

docs/design/0017-settlement-publication-and-shared-reintegration/backlog-origin.md (1)

3-3: LGTM!

AGENTS.md (1)

19-50: LGTM!

docs/catalog.yaml (2)

54-72: 🎯 Functional Correctness

path: ../RELEASE.md is fine.


111-195: 🎯 Functional Correctness

No issue: each family-reference row points to an existing local schema file, and authored_home matches path in these entries.

			> Likely an incorrect or invalid review comment.
docs/GETTING_STARTED.md (1)

115-119: 🎯 Functional Correctness

No mismatch here: wesley is resolved from PATH, emit is the command set, and the crate name is wesley-cli.

			> Likely an incorrect or invalid review comment.
docs/design/0012-compatibility-obligations-versus-evidence/README.md (1)

3-3: LGTM!

docs/design/0025-warp-native-distribution-and-node-runtime-policy/README.md (1)

3-3: LGTM!

docs/design/0027-witnessed-causal-suffix-sync/README.md (1)

3-3: LGTM!

docs/how-to/publish-runtime-evidence-for-a-contract-family.md (2)

1-79: 🎯 Functional Correctness

Verify all cross-references resolve and "Maintenance Rule" is defined.

The guide references several cross-repo paths that must exist for readers to succeed. The verification script above checks these. Additionally, "Maintenance Rule" appears in quotes but lacks a hyperlink—if this is a defined rule in the registry or policy, it should be linked; if not, the scare quotes may confuse readers.


52-54: Confirm node scripts/docs-lint.mjs is the correct invocation from repo root.

The command matches the path in the PR objectives, but verify the script's shebang or package.json scripts don't offer a more standard entrypoint (e.g., npm run docs:lint). Based on learnings, the documentation gate should be run before committing documentation changes.

Source: Learnings

docs/design/0035-continuum-stack-convergence/README.md (1)

3-3: LGTM!

docs/index.md (2)

12-46: 🎯 Functional Correctness

Verify every routed link resolves before this page goes live.

The index is a critical router—broken links here block all reader tasks. The verification script above checks all referenced paths. Of particular concern: ../README_FULL.md (parent directory), ../schemas/README.md (parent directory), invariants/CONTINUUM.md, and the three design/ packets must all exist.

Additionally, the qw-cli.md and glossary.md references appear in the "Start here" section but the file shows reference/qw-cli.md and reference/glossary.md—confirm these reader-task pages exist as durable truth, not design-log artifacts. As per coding guidelines, durable truth must live in reader-task pages under docs/ organized by reader need.

Source: Coding guidelines


44-46: LGTM: Frozen history note is doctrinally perfect.

The superseded-packets-stay-as-history note matches both the docs/design/** guideline and the retrieved learning to prefer ADR-lite/CHANGELOG over design-log additions. No additional comment needed beyond approval.

Sources: Coding guidelines, Learnings

README_FULL.md (3)

107-110: 🎯 Functional Correctness

Verify the proposed protocol-profiles destination exists.

The "design target, not yet authored" framing is appropriately honest, but readers following the link need a real destination. Confirm docs/explanation/protocol-profiles.md exists or adjust the caveat if the document has a different path or status.


120-126: Consistent and appropriate framing for unauthored profiles.

The parallel structure with lines 107-110 and the explicit "design target, not yet authored" caveat prevents reader confusion. The claim that "shared nouns those profiles would build on do exist today" is verifiable against the contract-family registry—ensure this stays true as families evolve.


188-190: "qw doctor" framing is consistent with VISION.md but verify neither overpromises.

Both README_FULL.md and VISION.md reference qw doctor as not-yet-implemented. Confirm this is the same command in both contexts and that the capability tier it belongs to is documented consistently. The VISION.md handoff note mentions qw build, qw doctor, qw update as "not yet implemented"—this matches the "does not exist yet" framing here.

apps/warp/VISION.md (2)

113-120: 🎯 Functional Correctness

Verify "resolves from crates.io" claim matches actual init.mjs behavior.

The VISION.md states the demo "now resolves the Wesley CLI from crates.io" but also says it "still relies on the user having that binary on PATH." This is a nuanced claim—verify that apps/warp/src/init.mjs actually invokes wesley as a binary found on PATH (which could be from cargo install) rather than downloading or installing it itself. The "from crates.io" framing should mean the canonical source is crates.io, not that the code performs crate resolution.


194-201: Verify handoff-note "done" claims against test and source truth.

The handoff note marks crates.io resolution as "(done)" and pins the next priority as prebuilt-from-manifest. This is a live project status claim—confirm apps/warp/test/warp-init.test.mjs or warp-warpspace.test.mjs exercises the Wesley invocation path and that the test expectations match this "done" state. Based on learnings, if a test looks wrong, do not alter it; flag it instead.

Source: Learnings

docs/design/0011-witness-core-and-receipt-shell/README.md (1)

3-3: LGTM!

docs/design/0028-minimum-runtime-boundary-contract-family/README.md (1)

3-3: LGTM!

docs/design/0019-echo-against-continuum-invariants/README.md (1)

3-3: LGTM!

docs/design/0016-engine-local-vs-shared-observer-contract/README.md (1)

3-3: LGTM!

docs/design/0017-settlement-publication-and-shared-reintegration/README.md (1)

3-3: LGTM!

docs/reference/convergence.md (1)

1-114: LGTM!

docs/releases/demo/continuum-stack-release.json (1)

20-20: LGTM!

Also applies to: 32-41

scripts/docs-lint.mjs (1)

191-211: LGTM!

docs/design/0006-focus-boundary-structure/README.md (1)

3-3: LGTM!

docs/design/0010-residual-reintegration-structure/README.md (1)

3-3: LGTM!

RELEASE.md (1)

1-57: LGTM!

docs/design/0015-echo-wesley-warp-ttd-proof-plan/README.md (1)

3-3: LGTM!

docs/reference/glossary.md (1)

1-109: LGTM!

docs/OVERVIEW.md (2)

3-9: Reframing resolves prior synthesis accuracy concern.

The shift from "brief synthesis of packets 0001–0017" to "living explanation" with explicit non-synthesis disclaimer correctly addresses the prior accuracy mismatch. The document now honestly contracts what it provides rather than overstating coverage.


59-381: Consistent "Design history:" relabeling across all sections.

All twelve section cross-references uniformly relabeled from "Detailed packets:" to "Design history:". This maintains consistent reader-facing vocabulary matching the new non-synthesis contract.

apps/warp/test/warp-init.test.mjs (5)

5-5: LGTM!


158-162: LGTM!


189-190: LGTM!


706-797: LGTM!


799-852: LGTM!

docs/design/0029-cross-repo-contract-family-registry/README.md (2)

3-3: LGTM!


48-48: No change needed. docs/contract-family-registry.md exists and remains the live registry source of truth; the archived packet can keep pointing to it.

docs/method/release.md (2)

5-9: LGTM!


6-8: Cross-references resolve cleanly.

docs/design/0022-neighborhood-core-and-admission-outcome-family/README.md (1)

3-3: LGTM!

docs/design/README.md (2)

2-22: LGTM!


12-15: Several docs/design/**/backlog-origin.md files still have status: active or status: captured, so the blanket “every packet is archived” claim is wrong.

			> Likely an incorrect or invalid review comment.
CONTRIBUTING.md (4)

1-89: LGTM!


15-16: No action needed: docs/invariants/ exists, so the path in CONTRIBUTING.md is valid.


48-48: No action needed
scripts/setup-hooks.sh exists and is executable.


42-42: No change needed for the test glob CI already runs Node 22/24, so node --test 'apps/warp/test/**/*.test.mjs' is supported as written.

			> Likely an incorrect or invalid review comment.
docs/DOCUMENTATION_POLICY.md (4)

2-358: LGTM! The policy structure is sound and self-consistent.


86-98: schemas/ is at the repo root and contains the GraphQL family definitions.


291-294: Anchor fragments stay advisory. Missing same-file anchors only emit warnings, so this doesn’t block docs-lint.


206-210: Ensure docs/catalog.yaml carries the §9 cross-repo fields on type: family-reference entries. authored_home, runtime_owner, consumers, and compatibility_status should be present and populated for contract-family records.

CHANGELOG.md (7)

1-189: LGTM! Changelog is comprehensive and well-structured.


88-118: Reference pages exist and are registered in docs/catalog.yaml.


14-17: CI hardening note is accurate. .github/workflows/ci.yml pins actions/checkout and actions/setup-node, and checkout sets persist-credentials: false.


32-38: No remaining continuum/wesley/ references.


82-86: No changelog issue: qw doctor/qw build are not top-level commands. The only doctor command is qw warpspace doctor, so the “nonexistent” wording is accurate.

			> Likely an incorrect or invalid review comment.

39-43: Registry statuses are correct. receipt-family and settlement-family are authored, not fixture-witnessed.


19-31: Wesley crate install and demo manifest align.

docs/reference/ownership-map.md (2)

1-17: LGTM!


53-68: Links resolve, and the Wesley wording matches the surrounding docs.

			> Likely an incorrect or invalid review comment.
docs/design/0021-family-versions-vs-repo-versions/README.md (1)

3-3: LGTM!

.github/workflows/ci.yml (2)

16-28: LGTM!


29-44: Clarify the Node 24 matrix entry

The workflow already has concurrency; the remaining question is whether Node 24 is intentional forward-compat coverage or unnecessary CI spend. Either document that support policy or trim the matrix to the supported runtime.

docs/design/0003-braid-witness-and-local-optic-neighborhoods/README.md (1)

3-3: LGTM!

docs/method/DOCUMENTATION_AUDIT.md (4)

1-55: LGTM!


234-241: LGTM!


246-253: LGTM!


274-278: LGTM!

docs/method/release-runbook.md (6)

1-54: LGTM!


159-519: LGTM!


520-833: LGTM!


834-1011: LGTM!


1948-1965: LGTM!


55-158: Example paths are stale placeholders — The repo’s .continuum/release.yml uses docs/GETTING_STARTED.md, docs/reference/qw-cli.md, docs/method/release-runbook.md, and docs/releases/; docs/topics/ and docs/operations/ are not the repo’s release-profile paths.

			> Likely an incorrect or invalid review comment.
apps/warp/README.md (1)

44-52: Confirm the crate source name and .warpspace/packages/wesley/ receipt path match the installer.

docs/design/0037-continuum-stack-project-slice-plan/README.md (1)

3-3: LGTM!

docs/design/0030-continuum-spine-protocol-report/README.md (1)

3-3: LGTM!

docs/design/0018-one-graph-two-temperatures-and-runtime-handoff/README.md (1)

3-3: LGTM!

.continuum/release.yml (2)

63-69: LGTM: Honest adoption status tracking.

The adoption_status section transparently reports partial implementation. This is good practice for a release configuration that is still maturing.


37-39: 🩺 Stability & Availability

No change needed
node --test runs on Node 22/24 in .github/workflows/ci.yml, and the quoted glob is passed through to Node as intended.

			> Likely an incorrect or invalid review comment.
docs/explanation/protocol-profiles.md (2)

1-4: 🎯 Functional Correctness

schemas/README.md is the authored home for the four shared contract families; no change needed.


64-69: continuum#24 is the wrong tracker for this section. It exists, but it tracks continuum.debug.hello.v1, not the participant profile work described here (continuum.participant.hello.v1, descriptor fixture, evidence posture, Wesley witness, WARP TTD discovery, qw reporting).

			> Likely an incorrect or invalid review comment.
METHOD.md (1)

19-21: 🎯 Functional Correctness

Remove the section-number concern

docs/DOCUMENTATION_POLICY.md §7 is the correct reference for the frozen-archive policy and the “new decisions use a decision record / CHANGELOG.md line” rule. §17 is definition-of-done material and doesn’t apply here. Also, METHOD.md no longer appears to contain the cited reference text.

			> Likely an incorrect or invalid review comment.
docs/releases/demo/README.md (1)

16-16: 🎯 Functional Correctness

No change needed here. apps/warp/src/init.mjs already resolves wesley-cli from PATH for toolchain.wesley.install.source: crate, and the demo docs match that native-rust path.

Comment thread APP_GLOSSARY.md Outdated
Comment thread apps/warp/src/init.mjs
Comment thread apps/warp/src/init.mjs
Comment thread apps/warp/test/warp-warpspace.test.mjs
Comment thread CHANGELOG.md
Comment thread docs/method/DOCUMENTATION_AUDIT.md Outdated
Comment thread docs/method/release-runbook.md
Comment thread docs/reference/qw-cli.md
Comment thread docs/reference/qw-cli.md Outdated
Comment thread scripts/docs-lint.mjs
@flyingrobots

Copy link
Copy Markdown
Owner Author

Review update

All currently unresolved, non-outdated review threads have been verified against the current head (4ff132c) and resolved.

Review issue Resolution Commit Evidence
Reject malformed catalog lines instead of dropping them docs-lint now collects unrecognized nonblank catalog lines and reports them as unparsed line errors instead of silently ignoring them. 3d94420 scripts/docs-lint.mjs records unknown lines and emits catalog errors; throwaway worktree probe confirmed malformed related : [...] fails docs-lint.
Ignore fenced examples when checking links Markdown fenced blocks and inline code are stripped before link and heading checks, so example links are not treated as real docs links. 3d94420 scripts/docs-lint.mjs uses stripCode() before link scanning; throwaway worktree probe confirmed a broken link inside a fenced block leaves docs-lint green.
Wire the versioned hook into Git Added a tracked setup script and contributor instructions for core.hooksPath=.githooks. cf9a52f scripts/setup-hooks.sh configures core.hooksPath .githooks; CONTRIBUTING.md documents the once-per-checkout setup.
Do not lie in the Wesley crate install receipt Crate-mode PATH resolution no longer records the manifest-requested version as observed fact. It records version: null, versionSource: "unverified-path-resolution", and requestedVersion. 4ff132c apps/warp/src/init.mjs writes the corrected receipt/toolchain fields; apps/warp/test/warp-init.test.mjs asserts the receipt and returned toolchain shape.

Validation on the current head:

Check Result
GitHub docs gate Passed
GitHub warp tests (22) Passed
GitHub warp tests (24) Passed
Local node scripts/docs-lint.mjs Passed, 0 errors / 0 warnings
Local git diff --check Passed
Local node --test apps/warp/test/*.test.mjs Passed, 31/31

@flyingrobots flyingrobots merged commit f7c63a3 into main Jun 27, 2026
4 checks passed
@flyingrobots flyingrobots deleted the docs/continuum-stack-slice-plan branch June 27, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant