Skip to content

feat(platform): add v0.2.0 project manifest platform#650

Merged
flyingrobots merged 18 commits into
mainfrom
v0.2.0/platform-batch
Jun 26, 2026
Merged

feat(platform): add v0.2.0 project manifest platform#650
flyingrobots merged 18 commits into
mainfrom
v0.2.0/platform-batch

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Linked Issue

N/A - this is the consolidation PR for the completed v0.2.0 platform batch. The implementation issues were closed with rationale comments before this PR was opened: #125, #138, #139, #231, #235, #574, #576, #585, and #64. Release gate #625 remains intentionally open until this PR lands on main and v0.2.0 is released from a signed tag.

Branch / Issue-Title Check

  • Exception: v0.2.0/platform-batch is a release-batch branch, not a single issue-title slug.

Summary

This PR lands the v0.2.0 platform batch as one reviewed unit after completing all 11/11 scheduled implementation slices.

It adds a domain-free Wesley project manifest layer (wesley.project-manifest/v1) for schema-set discovery, changed-schema selection, target metadata, and bundle isolation. It also wires Holmes CI to use the manifest-driven schema-set matrix, updates the Holmes PR comment aggregation for schema-scoped reports, adds a descriptor-only fixture module zoo, and refreshes the public docs/onramp around project manifests and module authoring.

Why

Wesley needs a deterministic, domain-free project boundary for multi-schema repositories without letting downstream semantics leak into core. The manifest gives Wesley enough structure to discover schema sets, select changed schemas, route output directories, and drive CI, while keeping renderers, runtimes, database targets, application semantics, and product-specific meaning outside Wesley.

The alternative was continuing to infer every workflow from ad hoc paths and legacy single-schema conventions. That kept CI brittle and made docs/operator behavior harder to verify.

Changes

  • Added wesley.project-manifest/v1 JSON/YAML parsing, validation, and project metadata in wesley-core.
  • Added CLI config commands for manifest inspection, validation, and changed-schema selection.
  • Taught schema commands to discover root manifests and schema-set context.
  • Added root wesley.config.json and manifest-driven Holmes schema-set matrix selection.
  • Scoped Holmes, Watson, and Moriarty reports/artifacts per schema set.
  • Updated the Holmes PR comment builder so missing/failed schema reports still appear in aggregate output.
  • Added descriptor-only fixture zoo coverage for extension/module authoring without domain semantics.
  • Added/updated docs for project manifests, module authoring, topic coverage, build artifacts, CLI references, and operator workflows.
  • Addressed all actionable PR review threads with focused commits and regression coverage.

Method Evidence

  • Design doc linked or not required: not required; implementation follows v0.2.0 GitHub issue/milestone planning and existing architecture docs.
  • Tests or validation evidence included.
  • Playback/witness included or not required: PR comments include docs/topics correction evidence and Code Lawyer activity summaries.
  • Retro or closeout evidence included or not required: release gate Release gate: current minor release #625 remains open for post-merge/tag closeout.

Tracker Hygiene

  • Linked issue had work-in-progress while active, or no single linked issue applies.
  • Linked issue lane/status/legend labels are current: completed implementation issues were closed with rationale; Release gate: current minor release #625 remains open for release.
  • Follow-up work is captured as GitHub Issues, not hidden in chat or local-only backlog files.

Risk

Primary risk is CI/workflow behavior: Holmes now fans out by schema-set matrix and aggregates per-schema reports. Mitigation: workflow Bats tests pin schema-set propagation, artifact scoping, comment builder inputs, and release workflow invariants.

Secondary risk is manifest path handling. Mitigation: Rust tests cover manifest-relative schema paths, bundle roots, invalid IDs, multi-document YAML rejection, invalid manifest fallback refusal, and descriptor-only fixtures.

Domain-boundary risk was explicitly checked: this PR adds generic project structure and extension metadata only. Wesley remains GraphQL structure -> deterministic/extensible IR; downstream extensions own semantics.

Backout

Revert the merge commit before cutting v0.2.0. Keep #625 open, do not tag, and rerun pnpm run preflight plus workflow-focused Bats before attempting a replacement PR.

Testing

  • pnpm run preflight
  • cargo test -p wesley-cli --test cli
  • cargo test -p wesley-core --test project_manifest
  • node --test packages/wesley-holmes/test/pr-comment.test.mjs
  • BATS_LIB_PATH=test/vendor bats -t test/ci-workflows.bats
  • BATS_LIB_PATH=test/vendor bats -t test/domain-empty-boundary.bats
  • cargo xtask docs-check
  • node scripts/check-doc-cli-commands.mjs
  • pnpm lint
  • git diff --check
  • Pre-push selected gate passed on each pushed review-fix commit.

EvidenceMap / SourceMap (if applicable)

N/A - this PR changes Wesley project/CI metadata and fixture/docs coverage, not SQL-to-SDL EvidenceMap output.

Screenshots / Logs (optional)

N/A.

Merge Strategy

  • Merge commit only; no rebase.
  • Delete branch after merge.

Checklist

  • One-topic PR with tight diff: v0.2.0 platform batch.
  • Rust-native preflight passes (cargo xtask preflight, via pnpm run preflight).
  • Legacy package preflight passes when relevant (cargo xtask legacy-preflight, via pnpm run preflight).
  • No widened permissions/secrets in workflows.
  • Docs updated if behavior changed.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds project-manifest parsing and validation, a new wesley config CLI surface, and manifest-aware schema defaults. HOLMES CI now detects multiple schema sets, runs HOLMES/WATSON/MORIARTY per set, and groups schema-scoped reports into PR comments, with matching docs and tests.

Changes

Manifest and HOLMES matrix rollout

Layer / File(s) Summary
Manifest core and validation
crates/wesley-core/src/domain/*.rs, crates/wesley-core/src/lib.rs, crates/wesley-core/tests/project_manifest.rs, docs/reference/project-manifest.md, wesley.config.json
ProjectManifest now loads JSON/YAML, validates schema/target rules, resolves changed schemas, and exposes the new manifest shape through core exports, tests, docs, and the root example config.
Config CLI and reference docs
crates/wesley-cli/src/main.rs, crates/wesley-cli/tests/cli.rs, docs/reference/cli.md, docs/GUIDE.md, docs/guides/quick-start.md, README.md
wesley config validate, inspect, and changed-schemas are wired into the CLI, schema commands can fall back to the manifest, and the CLI reference and quick-start examples are updated.
HOLMES matrix workflow
.github/workflows/wesley-holmes.yml, packages/wesley-holmes/src/*.mjs, packages/wesley-holmes/test/pr-comment.test.mjs, test/ci-workflows.bats, docs/architecture/holmes-*.md, CHANGELOG.md
The HOLMES workflow now selects schema sets, fans out per-schema HOLMES/WATSON/MORIARTY jobs, stores schema-scoped artifacts, and loads grouped report sets for multi-schema PR comments.
Module authoring and fixtures
CONTRIBUTING.md, docs/README.md, docs/build-artifacts.md, docs/guides/extending.md, docs/guides/generator-plugins.md, docs/guides/module-authoring.md, docs/truth-manifest.json, test/domain-empty-boundary.bats, test/fixtures/extensions/fixture-zoo/*, README.md, CHANGELOG.md
Module-authoring guidance, fixture-zoo descriptors, onboarding notes, navigation docs, and artifact references are updated around descriptor-only extensions and manifest-oriented metadata.

Sequence Diagram(s)

sequenceDiagram
  participant GH as GitHub Actions workflow
  participant CLI as wesley-cli
  participant MP as wesley-core::project_manifest
  participant HOLMES as holmes-investigate / watson-verify / moriarty-predict
  participant PRC as packages/wesley-holmes/src/pr-comment-cli.mjs
  participant PRM as packages/wesley-holmes/src/pr-comment.mjs

  GH->>CLI: config changed-schemas --json
  CLI->>MP: load_project_manifest / select_changed_schema_paths
  MP-->>CLI: schema_sets, selected_count
  GH->>HOLMES: matrix schema_set jobs
  HOLMES-->>GH: reports-by-schema/<id>/ artifacts
  GH->>PRC: comment-report with grouped report sets
  PRC->>PRM: buildHolmesMultiSchemaComment
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

Possibly related PRs

  • flyingrobots/wesley#467 — Changes the HOLMES PR comment pipeline that this PR extends with grouped multi-schema report handling.

Suggested labels

feature, enhancement

Poem

I hopped through manifests, neat and bright,
Then schema sets danced in matrix light.
HOLMES, WATSON, MORIARTY chimed,
And PR comments were neatly lined.
A carrot-cheered bunny says: "Hop, deploy!"

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.42% 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 main change set by calling out the v0.2.0 project manifest platform work.
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.
Description check ✅ Passed The PR description follows the template and fills the required sections with relevant summary, risk, testing, and rollout details.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v0.2.0/platform-batch

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.

@flyingrobots flyingrobots added the v0.2.0 Scheduled work for the v0.2.0 release. label Jun 26, 2026
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

🔍 The Case of Pull Request #650

Schema Sets

  • ecommerce
  • reference

Schema Set ecommerce

Plain-English Readout

  • Holmes (evidence investigation): The Holmes report is unavailable because the workflow finished without a readable holmes-report.json artifact.
  • Watson (independent verification): The Watson report is unavailable because the workflow finished without a readable watson-report.json artifact.
  • Moriarty (trend forecast): The Moriarty forecast is unavailable because the workflow finished without a readable moriarty-report.json artifact.

Suggested next actions

  1. Regenerate the HOLMES artifacts and make sure holmes-report.json is uploaded before trusting this PR summary.
  2. Regenerate the WATSON artifacts and make sure watson-report.json is uploaded before trusting this PR summary.
  3. Regenerate the MORIARTY artifacts and make sure moriarty-report.json is uploaded before trusting this PR summary.
🕵️ SHA-lock HOLMES full report for ecommerce (click to expand)

Report unavailable for holmes: readable holmes-report.md artifact not found.

🩺 Dr. WATSON full report for ecommerce (click to expand)

Report unavailable for watson: readable watson-report.md artifact not found.

🔮 Professor MORIARTY full report for ecommerce (click to expand)

Report unavailable for moriarty: readable moriarty-report.md artifact not found.


Schema Set reference

Plain-English Readout

  • Holmes (evidence investigation): The Holmes report is unavailable because the workflow finished without a readable holmes-report.json artifact.
  • Watson (independent verification): The Watson report is unavailable because the workflow finished without a readable watson-report.json artifact.
  • Moriarty (trend forecast): The Moriarty forecast is unavailable because the workflow finished without a readable moriarty-report.json artifact.

Suggested next actions

  1. Regenerate the HOLMES artifacts and make sure holmes-report.json is uploaded before trusting this PR summary.
  2. Regenerate the WATSON artifacts and make sure watson-report.json is uploaded before trusting this PR summary.
  3. Regenerate the MORIARTY artifacts and make sure moriarty-report.json is uploaded before trusting this PR summary.
🕵️ SHA-lock HOLMES full report for reference (click to expand)

Report unavailable for holmes: readable holmes-report.md artifact not found.

🩺 Dr. WATSON full report for reference (click to expand)

Report unavailable for watson: readable watson-report.md artifact not found.

🔮 Professor MORIARTY full report for reference (click to expand)

Report unavailable for moriarty: readable moriarty-report.md artifact not found.


📚 Glossary (what the Holmes terms mean)
  • HOLMES: Wesley’s main evidence investigation. It decides whether the cited proof is strong enough to justify shipping this commit.
  • WATSON: An independent verification pass. It checks Holmes’s citations and score math instead of trusting them blindly.
  • MORIARTY: A readiness forecast over time. It is advisory trend analysis, not the release gate itself.
  • Schema coverage score (SCS): How much of the schema has direct supporting evidence across generated artifacts and cited proof.
  • Test confidence index (TCI): How much test evidence exists for constraints, policies, relationships, and operations.
  • Migration risk index (MRI): How risky the schema change is to roll out. Lower is better.
  • Evidence trust: Whether the report is backed by exact citations, whole-file citations, or coarse references. Weak trust means the claim may be directionally right but not specific enough to trust blindly.
  • Citation quality: A count of exact line-span citations versus whole-file or coarse references.
  • ELEMENTARY: Ready to ship based on the current evidence.
  • REQUIRES INVESTIGATION: More work or review is needed before shipping.
  • YOU SHALL NOT PASS: Do not ship this change in its current state.

Machine-readable reports are grouped by schema set in workflow artifacts.


Filed at 221B Repository Street

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

🚢 SHIPME

[SHIPME] PASS · HOLMES fixture · sha 5d9f671

@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: f1b3a5f7d5

ℹ️ 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 .github/workflows/wesley-holmes.yml Outdated
Comment thread .github/workflows/wesley-holmes.yml
Comment thread .github/workflows/wesley-holmes.yml Outdated
Comment thread crates/wesley-cli/src/main.rs Outdated
Comment thread crates/wesley-core/src/domain/project_manifest.rs
Comment thread crates/wesley-core/src/domain/project_manifest.rs Outdated

@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: 7

🧹 Nitpick comments (2)
docs/build-artifacts.md (1)

5-13: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Clarify whether external targets write to out/ and .wesley-cache/.

The updated descriptions suggest external targets produce artifacts in .wesley-cache/ and out/. If targets declare their own outputDir in the project manifest, the out/ description may overgeneralize. Consider tightening to "Native emit commands or external targets that use the default output directory."

🤖 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/build-artifacts.md` around lines 5 - 13, The `build-artifacts.md` table
overgeneralizes `out/` and `.wesley-cache/` for external targets; update the
descriptions so they only claim artifacts are written there when the target uses
the default output location. Tighten the wording for the `out/` and
`.wesley-cache/` rows to distinguish native emit commands from external targets
with custom `outputDir` settings, keeping the entries aligned with how the
artifact locations are actually produced.
test/ci-workflows.bats (1)

190-215: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Verify exact occurrence counts in workflow file.

The test asserts specific grep occurrence counts (4 for schema_set matrix, 6 for reports-by-schema). These counts are fragile if the workflow file structure changes. Consider whether these should be exact equality (-eq) or minimum thresholds (-ge) for maintainability, or add a comment explaining why these specific counts are expected.

#!/bin/bash
# Verify the actual occurrence counts in the workflow file
grep -c 'schema_set: \${{ fromJson(needs.detect-schema-sets.outputs.schema_sets) }}' .github/workflows/wesley-holmes.yml
grep -c 'reports-by-schema/\${{ matrix.schema_set.id }}' .github/workflows/wesley-holmes.yml
grep -c 'steps.detect.outputs.selected_count' .github/workflows/wesley-holmes.yml
🤖 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 `@test/ci-workflows.bats` around lines 190 - 215, The workflow test in bats is
asserting brittle exact grep counts for `schema_set` and `reports-by-schema` in
`test/ci-workflows.bats`. Update the checks around `wesley-holmes.yml` to use
more maintainable thresholds where appropriate, or add a clear inline comment
explaining why the current exact counts in the `HOLMES workflow uses Wesley
project manifest for selective schema sets` test are intentionally fixed. Keep
the existing symbol references like `detect-schema-sets`, `schema_set`, and
`steps.detect.outputs.selected_count` so the intent remains tied to the workflow
structure.
🤖 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/wesley-holmes.yml:
- Around line 61-77: The fallback in the workflow step around the `wesley config
inspect --json` check is too broad and currently treats malformed
`wesley.config.json` the same as a missing manifest. Update the conditional
handling in this job so `wesley config inspect` parse/validation failures stop
the workflow instead of entering the legacy schema-detection branch, and reserve
the fallback only for the manifest-absent case; keep the existing
`changed-schemas` and `wesley-selected.json` path for valid manifests.
- Around line 218-223: The artifact upload steps are saving the shared
reports-by-schema parent directory instead of each schema’s own folder, which
causes an extra path level on download. Update the three actions/upload-artifact
steps for holmes-report, watson-report, and moriarty-report to use the
schema-specific reports-by-schema/${{ matrix.schema_set.id }} path so the
extracted artifacts place each schema ID directly under the reports root. Use
the existing matrix.schema_set.id value and keep the upload naming unchanged.

In `@crates/wesley-cli/src/main.rs`:
- Around line 457-466: The changed-schemas branch in main is comparing raw
manifest entries against Git changed paths, so manifest-relative schemas can be
missed. Use the existing manifest_path from load_manifest_from_options() to
rebase or resolve schema paths before calling select_changed_schema_paths(),
reusing the same path resolution behavior as resolve_manifest_relative_path() so
ConfigChangedSchemasReport is built from normalized paths rather than unresolved
manifest-relative values.

In `@crates/wesley-core/src/domain/project_manifest.rs`:
- Around line 416-430: parse_manifest_value currently accepts the first YAML
document from YamlLoader::load_from_str and silently ignores any trailing
documents, so update this fallback to reject multi-document YAML manifests
explicitly. After loading, check the document count before using
documents.first(), and return a ProjectManifestError::Parse when more than one
document is present; keep the existing JSON/YAML error handling and yaml_to_json
path otherwise.
- Around line 493-500: The normalize_path helper is over-normalizing by
stripping leading slashes and collapsing "."/"./" into an empty path, which
breaks absolute and current-directory bundleDir values. Update normalize_path in
project_manifest.rs to preserve absolute paths unchanged and keep "."/"./" as a
valid current-directory base while still normalizing separators and redundant
internal segments; make sure the logic in normalize_path and any callers that
build bundle directories continue to work for multi-schema manifests.

In `@packages/wesley-holmes/src/pr-comment-cli.mjs`:
- Around line 16-38: The CLI currently derives schema sets only from
loadHolmesSuiteReportSets(), which misses any selected schemas that failed
before uploading artifacts. Update main and its call path to accept the selected
IDs from detect-schema-sets.outputs.schema_sets, then use those IDs to build the
aggregate comment so every expected schema appears. In particular, preserve the
existing buildHolmesMultiSchemaComment flow but synthesize placeholder sections
for schema IDs that are missing from reportSets, instead of inferring the list
solely from downloaded artifacts.

In `@test/domain-empty-boundary.bats`:
- Around line 120-122: The current test in the domain-empty-boundary Bats file
only checks a total grep count for descriptorOnly, which can still pass if one
fixture loses the field and another gains an extra match. Update the test to
inspect each fixture-extension.json individually in fixture-zoo, using the
existing test block around the grep/assert_success logic, so each
descriptor-only fixture is verified directly instead of relying on an aggregate
count.

---

Nitpick comments:
In `@docs/build-artifacts.md`:
- Around line 5-13: The `build-artifacts.md` table overgeneralizes `out/` and
`.wesley-cache/` for external targets; update the descriptions so they only
claim artifacts are written there when the target uses the default output
location. Tighten the wording for the `out/` and `.wesley-cache/` rows to
distinguish native emit commands from external targets with custom `outputDir`
settings, keeping the entries aligned with how the artifact locations are
actually produced.

In `@test/ci-workflows.bats`:
- Around line 190-215: The workflow test in bats is asserting brittle exact grep
counts for `schema_set` and `reports-by-schema` in `test/ci-workflows.bats`.
Update the checks around `wesley-holmes.yml` to use more maintainable thresholds
where appropriate, or add a clear inline comment explaining why the current
exact counts in the `HOLMES workflow uses Wesley project manifest for selective
schema sets` test are intentionally fixed. Keep the existing symbol references
like `detect-schema-sets`, `schema_set`, and
`steps.detect.outputs.selected_count` so the intent remains tied to the workflow
structure.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8bed5cd1-49f4-4ebe-b33f-061b0d6d1154

📥 Commits

Reviewing files that changed from the base of the PR and between 4c54a20 and f1b3a5f.

📒 Files selected for processing (33)
  • .github/workflows/wesley-holmes.yml
  • CHANGELOG.md
  • CONTRIBUTING.md
  • README.md
  • crates/wesley-cli/src/main.rs
  • crates/wesley-cli/tests/cli.rs
  • crates/wesley-core/src/domain/mod.rs
  • crates/wesley-core/src/domain/project_manifest.rs
  • crates/wesley-core/src/lib.rs
  • crates/wesley-core/tests/project_manifest.rs
  • docs/GUIDE.md
  • docs/README.md
  • docs/architecture/holmes-architecture.md
  • docs/architecture/holmes-integration.md
  • docs/build-artifacts.md
  • docs/guides/extending.md
  • docs/guides/generator-plugins.md
  • docs/guides/module-authoring.md
  • docs/guides/quick-start.md
  • docs/reference/cli.md
  • docs/reference/project-manifest.md
  • docs/truth-manifest.json
  • packages/wesley-holmes/src/cli.mjs
  • packages/wesley-holmes/src/pr-comment-cli.mjs
  • packages/wesley-holmes/src/pr-comment.mjs
  • packages/wesley-holmes/test/pr-comment.test.mjs
  • test/ci-workflows.bats
  • test/domain-empty-boundary.bats
  • test/fixtures/extensions/fixture-zoo/README.md
  • test/fixtures/extensions/fixture-zoo/blade-heavy/fixture-extension.json
  • test/fixtures/extensions/fixture-zoo/compiler-heavy/fixture-extension.json
  • test/fixtures/extensions/fixture-zoo/evidence-heavy/fixture-extension.json
  • wesley.config.json

Comment thread .github/workflows/wesley-holmes.yml Outdated
Comment thread .github/workflows/wesley-holmes.yml
Comment thread crates/wesley-cli/src/main.rs
Comment thread crates/wesley-core/src/domain/project_manifest.rs Outdated
Comment thread crates/wesley-core/src/domain/project_manifest.rs Outdated
Comment thread packages/wesley-holmes/src/pr-comment-cli.mjs
Comment thread test/domain-empty-boundary.bats Outdated
@flyingrobots

Copy link
Copy Markdown
Owner Author

docs/topics Audit

I re-ran the manual docs/topics/ release gate after the PR was opened.

Scope Result Evidence
Tracked docs/topics/ files 1/1 audited docs/topics/contributing/triage.md
Accuracy Gate met after remediation Updated stale current lane list to include v0.4.0 and v0.5.0; verified open issues have exactly one triage:* or vX.Y.Z scheduling label.
Coverage Gate met after remediation Added related-authority links from the topic page to label taxonomy, release policy, and release checklist.
GitHub label hygiene Clean after remediation Removed stale lane:v0.2.0 from #646 after rationale comment, then deleted the obsolete label. Verified no lane:* labels remain.

Validation:

  • cargo xtask docs-check
  • BATS_LIB_PATH=test/vendor bats -t test/release-governance.bats
  • git diff --check
  • GitHub label audit: no lane:* labels remain
  • Open issue scheduling audit: no open issue lacks or exceeds one scheduling-state label

Follow-up commit: c1b6ea7b docs(topics): refresh triage lane audit.

@flyingrobots

Copy link
Copy Markdown
Owner Author

docs/topics Coverage Correction

Correction to the earlier topic audit: auditing only the tracked docs/topics/contributing/triage.md file was not enough. The release gate also requires coverage of release-relevant contributor/operator workflows, and a directory containing only triage did not meet that bar.

Remediation commit: d95de82a docs(topics): add operator workflow coverage

Added topic coverage:

Topic Page Workflow Covered
docs/topics/README.md Topic index and coverage rule
docs/topics/compiler-boundary.md Domain-free Wesley ownership and extension placement
docs/topics/project-manifests.md Manifest-driven schema sets, changed-schema selection, and target metadata
docs/topics/validation.md PR/release local validation command selection
docs/topics/holmes-ci.md Manifest-driven HOLMES CI and evidence artifacts
docs/topics/releases.md Tagged-main release flow and human release gates
docs/topics/contributing/triage.md Issue triage and version-lane scheduling

Signposts updated:

  • docs/README.md now links to docs/topics/README.md
  • CONTRIBUTING.md now links to the topic index
  • docs/truth-manifest.json now tracks the new current topic pages

Validation:

  • cargo xtask docs-check
  • BATS_LIB_PATH=test/vendor bats -t test/release-governance.bats
  • pnpm exec prettier --check CONTRIBUTING.md docs/README.md docs/truth-manifest.json docs/topics/README.md docs/topics/compiler-boundary.md docs/topics/project-manifests.md docs/topics/validation.md docs/topics/holmes-ci.md docs/topics/releases.md
  • git diff --check
  • pre-push cargo xtask preflight

With this correction, docs/topics/ now covers the release-relevant contributor/operator workflows for this PR instead of merely auditing the one existing triage page.

@flyingrobots

Copy link
Copy Markdown
Owner Author

@codex self-audit issue discovered during Code Lawyer pass:

Severity Source File Lines Issue Planned handling
P4 Self .github/workflows/wesley-holmes.yml 596-604 comment-report runs a stray Moriarty history-fetch step after posting the PR comment. It is outside the prediction job boundary and adds needless workflow work. Remove after the active P2 review blockers are cleared unless a higher-severity interaction appears.

@chatgpt-codex-connector

Copy link
Copy Markdown

Summary

  • Removed the stray post-comment Moriarty history-fetch step from the HOLMES workflow so the comment-report job ends after creating or updating the PR comment. .github/workflows/wesley-holmes.ymlL584-L595
  • Committed the change with eaf37e4 (ci: remove stray holmes history fetch) and created the requested PR metadata.

Testing

  • git diff --check
  • ⚠️ BATS_LIB_PATH=test/vendor bats -t test/ci-workflows.bats (blocked because bats is not installed in this environment)
  • ⚠️ pnpm run preflight (blocked during pnpm audit --prod=false --json because the npm audit endpoint returned 403 Forbidden)

View task →

@flyingrobots

Copy link
Copy Markdown
Owner Author

Code Lawyer Activity Summary

# Severity Source File Commit Outcome
1 P2 PR review .github/workflows/wesley-holmes.yml a12c552a Invalid manifests now fail instead of falling into legacy detection; duplicate threads resolved.
2 P2 PR review .github/actions/holmes-setup/action.yml, .github/workflows/wesley-holmes.yml 93aee12a Holmes caches are namespaced per schema set; thread resolved.
3 P2 PR review .github/workflows/wesley-holmes.yml f6a59f98 commentMode: silent now suppresses PR comment updates; thread resolved.
4 P2 PR review .github/workflows/wesley-holmes.yml 3aac1068 Report uploads now use schema-specific artifact paths; thread resolved.
5 P2 PR review .github/workflows/wesley-holmes.yml, packages/wesley-holmes/src/pr-comment*.mjs 12cd9bdc Selected schema sets are preserved even when reports are missing; thread resolved.
6 P2 PR review crates/wesley-cli/src/main.rs, crates/wesley-cli/tests/cli.rs 5bf1ac08 config changed-schemas resolves manifest-relative paths before selection; duplicate threads resolved.
7 P2 PR review crates/wesley-core/src/domain/project_manifest.rs, crates/wesley-core/tests/project_manifest.rs 51856e1d Dot-only schema IDs are rejected; thread resolved.
8 P2 PR review crates/wesley-core/src/domain/project_manifest.rs, crates/wesley-core/tests/project_manifest.rs c18b69f1 . and absolute bundle roots are preserved; duplicate threads resolved.
9 P4 PR review crates/wesley-core/src/domain/project_manifest.rs, crates/wesley-core/tests/project_manifest.rs c5baf525 Multi-document YAML manifests are rejected explicitly; thread resolved.
10 P4 PR review test/domain-empty-boundary.bats 13021cde Descriptor-only fixture assertions now inspect each fixture directly; thread resolved.
11 P5 PR review body docs/build-artifacts.md f9fa298c Build artifact defaults now distinguish native outputs from target-owned outputs.
12 P5 PR review body test/ci-workflows.bats 3b3ead22 Exact workflow grep counts now have an inline rationale.
13 P4 Self-audit .github/workflows/wesley-holmes.yml, test/ci-workflows.bats a9dc2dbd Removed stray Moriarty history-fetch step from comment-report; self-audit item fixed.
14 P5 Metadata review PR body metadata-only PR body updated to the repository template with explicit risk, backout, testing, tracker hygiene, and release-gate evidence.

Validation after fixes:

  • pnpm run preflight PASS
  • git diff origin/main...HEAD re-audited after fixes
  • git diff --check origin/main...HEAD PASS
  • gh api graphql review-thread query: 0 unresolved threads
  • PR checks: green except cert was still pending at the time this summary was posted

Domain-free invariant: preserved. This PR adds generic project structure, schema-set selection, and CI/report plumbing only; no downstream domain semantics were added to Wesley core.

@flyingrobots flyingrobots merged commit fedb747 into main Jun 26, 2026
22 checks passed
@flyingrobots flyingrobots deleted the v0.2.0/platform-batch branch June 26, 2026 09:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v0.2.0 Scheduled work for the v0.2.0 release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant