Conversation
- Replace leftover 'specfact generate ...' runtime examples and remediation hints with 'specfact spec generate ...' in the apply-help block, prompt next-steps, fix-prompt, and test-prompt listings. - Replace remaining flat 'specfact sdd constitution ...' hints with 'specfact spec constitution ...' in constitution validation next-steps and the sync bootstrap guidance, matching the prompt-command validator mounts. Addresses the PR #318 review annotations from chatgpt-codex-connector and coderabbitai about incomplete namespace migration in user-facing help/error paths. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs: align flat command references
chore(registry): publish changed modules
|
Strix is installed on this repository, but we could not run this PR security review because this workspace does not have an active plan. If you'd like to continue receiving code reviews, you can add a payment method or manage billing here. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
📜 Recent review details⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🧰 Additional context used📓 Path-based instructions (2)**/*.{js,ts,tsx,jsx,py,java,cs,go,rb,php,cpp,c,h}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
tests/**/*.py⚙️ CodeRabbit configuration file
Files:
🪛 ast-grep (0.43.0)tests/unit/docs/test_llms_overview_freshness.py[error] 34-41: Command coming from incoming request (subprocess-from-request) [error] 34-41: Use of unsanitized data to create processes (os-system-unsanitized-data) 🔀 Multi-repo context nold-ai/specfact-clinold-ai/specfact-cli
Implication summary:
🔇 Additional comments (1)
📝 WalkthroughBundle and Module Surface: Commands, Adapters, Runtime Behavior
Manifest and Integrity: module-package.yaml, SemVer, Signatures, Registry
Cross-Repo: specfact-cli Alignment and Dev-Deps
Docs, Registry and Release Notes
Tests, Risk and Review Notes
Fileset & Review Effort
Estimated review effort: Low–Medium. Prioritize integrity/signature verification, a sweep for leftover legacy flat-command references in runtime help/remediation outputs, and CI across supported Python versions. WalkthroughBumps multiple SpecFact module versions and integrity metadata, updates registry checksums/signatures, harmonizes CLI help/examples to new namespaces and bundle wording, removes beartype decorators from tests, and adds specfact_spec.sdd.commands to prompt-command validation. ChangesModule release, docs, registry, and tooling
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc93135637
ℹ️ 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".
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/specfact-codebase/src/specfact_codebase/analyze/commands.py (1)
97-97: 📐 Maintainability & Code Quality | ⚡ Quick winIncomplete namespace harmonization across three modules: "Using active plan:" should be "Using active project bundle."
The PR harmonizes CLI documentation to replace "active plan" language with "active project bundle configuration," but three console output statements escaped the refactoring:
analyze/commands.pyL97drift/commands.pyL110import_cmd/commands.pyL2537These are user-visible debug outputs that should match the pattern established elsewhere in each file (help text, error messages). Update all three to say "Using active project bundle:" for consistent messaging.
🤖 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 `@packages/specfact-codebase/src/specfact_codebase/analyze/commands.py` at line 97, Update the user-facing debug strings to match the harmonized wording: replace the console.print call that currently prints "Using active plan: {bundle}" in analyze/commands.py (the console.print invocation around active plan messaging) and the equivalent console.print/print statements in drift/commands.py and import_cmd/commands.py so they read "Using active project bundle: {bundle}" (preserve the surrounding formatting/variables and any [dim] styling). Ensure you change the exact literal text only and leave the variable interpolation and styling intact.
🤖 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 `@packages/specfact-govern/src/specfact_govern/enforce/commands.py`:
- Around line 285-286: The user-facing hint in
packages/specfact-govern/src/specfact_govern/enforce/commands.py currently tells
users to "Use --bundle" which is wrong for this command that expects a
positional bundle argument; update the console.print message (the line printing
"[yellow]→[/yellow] Use --bundle option or configure an active project bundle")
to instead instruct using the positional form (e.g., "Use <bundle> argument or
configure an active project bundle") so it matches the command's signature;
apply the same fix in
packages/specfact-project/src/specfact_project/sync/commands.py where a similar
message references "--bundle".
---
Nitpick comments:
In `@packages/specfact-codebase/src/specfact_codebase/analyze/commands.py`:
- Line 97: Update the user-facing debug strings to match the harmonized wording:
replace the console.print call that currently prints "Using active plan:
{bundle}" in analyze/commands.py (the console.print invocation around active
plan messaging) and the equivalent console.print/print statements in
drift/commands.py and import_cmd/commands.py so they read "Using active project
bundle: {bundle}" (preserve the surrounding formatting/variables and any [dim]
styling). Ensure you change the exact literal text only and leave the variable
interpolation and styling intact.
🪄 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: fd8e0bad-b5de-4868-aaeb-3db80dac51f9
⛔ Files ignored due to path filters (6)
registry/modules/specfact-backlog-0.41.30.tar.gzis excluded by!**/*.gzregistry/modules/specfact-code-review-0.47.46.tar.gzis excluded by!**/*.gzregistry/modules/specfact-codebase-0.41.13.tar.gzis excluded by!**/*.gzregistry/modules/specfact-govern-0.40.25.tar.gzis excluded by!**/*.gzregistry/modules/specfact-project-0.41.25.tar.gzis excluded by!**/*.gzregistry/modules/specfact-spec-0.40.23.tar.gzis excluded by!**/*.gz
📒 Files selected for processing (32)
packages/specfact-backlog/module-package.yamlpackages/specfact-code-review/module-package.yamlpackages/specfact-codebase/module-package.yamlpackages/specfact-codebase/src/specfact_codebase/analyze/commands.pypackages/specfact-codebase/src/specfact_codebase/drift/commands.pypackages/specfact-codebase/src/specfact_codebase/import_cmd/commands.pypackages/specfact-codebase/src/specfact_codebase/repro/commands.pypackages/specfact-govern/module-package.yamlpackages/specfact-govern/src/specfact_govern/enforce/commands.pypackages/specfact-project/module-package.yamlpackages/specfact-project/src/specfact_project/import_cmd/commands.pypackages/specfact-project/src/specfact_project/sync/commands.pypackages/specfact-project/src/specfact_project/sync_runtime/sync_perform_operation_impl.pypackages/specfact-spec/module-package.yamlpackages/specfact-spec/src/specfact_spec/generate/commands.pypackages/specfact-spec/src/specfact_spec/sdd/commands.pypackages/specfact-spec/src/specfact_spec/spec/commands.pyregistry/index.jsonregistry/modules/specfact-backlog-0.41.30.tar.gz.sha256registry/modules/specfact-code-review-0.47.46.tar.gz.sha256registry/modules/specfact-codebase-0.41.13.tar.gz.sha256registry/modules/specfact-govern-0.40.25.tar.gz.sha256registry/modules/specfact-project-0.41.25.tar.gz.sha256registry/modules/specfact-spec-0.40.23.tar.gz.sha256registry/signatures/specfact-backlog-0.41.30.tar.sigregistry/signatures/specfact-code-review-0.47.46.tar.sigregistry/signatures/specfact-codebase-0.41.13.tar.sigregistry/signatures/specfact-govern-0.40.25.tar.sigregistry/signatures/specfact-project-0.41.25.tar.sigregistry/signatures/specfact-spec-0.40.23.tar.sigtests/unit/sync_runtime/test_bridge_sync.pytests/unit/sync_runtime/test_drift_detector.py
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
nold-ai/specfact-cli(manual)
💤 Files with no reviewable changes (2)
- tests/unit/sync_runtime/test_drift_detector.py
- tests/unit/sync_runtime/test_bridge_sync.py
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: quality (3.12)
- GitHub Check: quality (3.13)
🧰 Additional context used
📓 Path-based instructions (4)
registry/**
⚙️ CodeRabbit configuration file
registry/**: Registry and index consistency: bundle listings, version pins, and compatibility with
published module artifacts.
Files:
registry/modules/specfact-govern-0.40.25.tar.gz.sha256registry/modules/specfact-code-review-0.47.46.tar.gz.sha256registry/modules/specfact-backlog-0.41.30.tar.gz.sha256registry/signatures/specfact-project-0.41.25.tar.sigregistry/modules/specfact-spec-0.40.23.tar.gz.sha256registry/signatures/specfact-code-review-0.47.46.tar.sigregistry/signatures/specfact-backlog-0.41.30.tar.sigregistry/signatures/specfact-govern-0.40.25.tar.sigregistry/signatures/specfact-codebase-0.41.13.tar.sigregistry/modules/specfact-codebase-0.41.13.tar.gz.sha256registry/signatures/specfact-spec-0.40.23.tar.sigregistry/modules/specfact-project-0.41.25.tar.gz.sha256registry/index.json
packages/**/module-package.yaml
⚙️ CodeRabbit configuration file
packages/**/module-package.yaml: Validate metadata: name, version, commands, dependencies, and parity with packaged src.
Call out semver and signing implications when manifests or payloads change.
Files:
packages/specfact-codebase/module-package.yamlpackages/specfact-govern/module-package.yamlpackages/specfact-spec/module-package.yamlpackages/specfact-code-review/module-package.yamlpackages/specfact-backlog/module-package.yamlpackages/specfact-project/module-package.yaml
**/*.{js,ts,tsx,jsx,py,java,cs,go,rb,php,cpp,c,h}
📄 CodeRabbit inference engine (CLAUDE.md)
Preserve the clean-code compliance gate and its category references (naming, kiss, yagni, dry, and solid)
Files:
packages/specfact-codebase/src/specfact_codebase/import_cmd/commands.pypackages/specfact-codebase/src/specfact_codebase/repro/commands.pypackages/specfact-codebase/src/specfact_codebase/drift/commands.pypackages/specfact-codebase/src/specfact_codebase/analyze/commands.pypackages/specfact-project/src/specfact_project/sync_runtime/sync_perform_operation_impl.pypackages/specfact-spec/src/specfact_spec/sdd/commands.pypackages/specfact-project/src/specfact_project/import_cmd/commands.pypackages/specfact-project/src/specfact_project/sync/commands.pypackages/specfact-govern/src/specfact_govern/enforce/commands.pypackages/specfact-spec/src/specfact_spec/generate/commands.pypackages/specfact-spec/src/specfact_spec/spec/commands.py
packages/**/src/**/*.py
⚙️ CodeRabbit configuration file
packages/**/src/**/*.py: Focus on adapter and bridge patterns: imports from specfact_cli (models, runtime, validators),
Typer/Rich command surfaces, and clear boundaries so core upgrades do not silently break bundles.
Flag breaking assumptions about registry loading, lazy imports, and environment/mode behavior.
Files:
packages/specfact-codebase/src/specfact_codebase/import_cmd/commands.pypackages/specfact-codebase/src/specfact_codebase/repro/commands.pypackages/specfact-codebase/src/specfact_codebase/drift/commands.pypackages/specfact-codebase/src/specfact_codebase/analyze/commands.pypackages/specfact-project/src/specfact_project/sync_runtime/sync_perform_operation_impl.pypackages/specfact-spec/src/specfact_spec/sdd/commands.pypackages/specfact-project/src/specfact_project/import_cmd/commands.pypackages/specfact-project/src/specfact_project/sync/commands.pypackages/specfact-govern/src/specfact_govern/enforce/commands.pypackages/specfact-spec/src/specfact_spec/generate/commands.pypackages/specfact-spec/src/specfact_spec/spec/commands.py
🧠 Learnings (1)
📚 Learning: 2026-04-02T21:49:07.435Z
Learnt from: djm81
Repo: nold-ai/specfact-cli-modules PR: 136
File: registry/modules/specfact-spec-0.40.17.tar.gz.sha256:1-1
Timestamp: 2026-04-02T21:49:07.435Z
Learning: In nold-ai/specfact-cli-modules, module tarball signature files under registry/signatures/*.tar.sig are produced by the publish-modules GitHub Actions runner during the publish workflow (not committed to the branch). During PR pre-merge review, do not flag missing *.tar.sig files as blockers; treat signatures as publish-time artifacts.
Applied to files:
registry/signatures/specfact-project-0.41.25.tar.sigregistry/signatures/specfact-code-review-0.47.46.tar.sigregistry/signatures/specfact-backlog-0.41.30.tar.sigregistry/signatures/specfact-govern-0.40.25.tar.sigregistry/signatures/specfact-codebase-0.41.13.tar.sigregistry/signatures/specfact-spec-0.40.23.tar.sig
🔀 Multi-repo context nold-ai/specfact-cli
Linked repositories findings
nold-ai/specfact-cli
-
Remaining flat-command occurrences in code, docs, and specs that this PR intends to replace (examples; each path contains one or more references to old flat forms like
specfact sync,specfact generate,specfact sdd constitution,specfact repro):- tools/validate_prompts.py — contains "specfact sync" and "specfact repro" usages [::nold-ai/specfact-cli::tools/validate_prompts.py]
- scripts/export-change-to-github.py — builds
specfact sync bridgecommand for GitHub export [::nold-ai/specfact-cli::scripts/export-change-to-github.py] - scripts/runtime_discovery_smoke.py — asserts "
specfact sync bridge --helpstill resolves as a root command" (runtime-smoke detection) [::nold-ai/specfact-cli::scripts/runtime_discovery_smoke.py] - docs/migration/migration-cli-reorganization.md — migration guide still documents
specfact sdd constitutionreplacements and related notes (migration context) [::nold-ai/specfact-cli::docs/migration/migration-cli-reorganization.md] - docs/reference/commands.md and docs/migration/migration-guide.md — tables mapping
specfact sync ...→specfact project sync ..., etc. (update surface) [::nold-ai/specfact-cli::docs/reference/commands.md] [::nold-ai/specfact-cli::docs/migration/migration-guide.md] - many openspec/specs and openspec/changes/* documents reference
specfact sync bridge,specfact repro,specfact generate, andspecfact import from-bridge(numerous spec files — potential doc/test surface to re-check) [::nold-ai/specfact-cli::openspec/specs/] [::nold-ai/specfact-cli::openspec/changes/]
-
Tests & tooling implications:
- tests/integration and tests/unit reference
specfact reproand related commands (e.g., tests/integration/commands/test_repro_command.py) — ensure these tests align with namespaced command changes or that test expectations were updated in the PR [::nold-ai/specfact-cli::tests/integration/commands/test_repro_command.py] - scripts and validation tooling (tools/validate_prompts.py, docs validation scripts referenced in tests) look for obsolete command strings; updating embedded examples may require adjusting these validators to accept the new canonical forms [::nold-ai/specfact-cli::tools/validate_prompts.py] [::nold-ai/specfact-cli::tests/unit/docs/test_docs_validation_scripts.py]
- tests/integration and tests/unit reference
-
Registry / published manifests:
- No registry directory present in the working tree (ls reported "No such file or directory"). If the PR updates registry artifacts elsewhere, confirm CI/publish steps and registry consumers are aligned — but no local registry files to inspect here [::nold-ai/specfact-cli::(repo root)]
Notes on scope: the grep output shows many doc/spec files referencing old flat commands across the repo (openspec and docs). Those are the primary consumer surfaces to re-check for consistency after the rename; tests and scripts that construct or assert CLI invocations are also affected.
🔇 Additional comments (19)
packages/specfact-backlog/module-package.yaml (1)
2-2: LGTM!Also applies to: 30-31
packages/specfact-code-review/module-package.yaml (1)
2-2: LGTM!Also applies to: 26-27
packages/specfact-codebase/module-package.yaml (1)
2-2: LGTM!Also applies to: 27-28
packages/specfact-govern/module-package.yaml (1)
2-2: LGTM!Also applies to: 22-23
packages/specfact-project/module-package.yaml (1)
2-2: LGTM!Also applies to: 30-31
packages/specfact-spec/module-package.yaml (1)
2-2: LGTM!Also applies to: 24-25
registry/index.json (1)
5-7: LGTM!Also applies to: 19-21, 33-35, 49-51, 65-67, 81-83
registry/modules/specfact-backlog-0.41.30.tar.gz.sha256 (1)
1-1: LGTM!registry/modules/specfact-code-review-0.47.46.tar.gz.sha256 (1)
1-1: LGTM!registry/modules/specfact-codebase-0.41.13.tar.gz.sha256 (1)
1-1: LGTM!registry/modules/specfact-govern-0.40.25.tar.gz.sha256 (1)
1-1: LGTM!registry/modules/specfact-project-0.41.25.tar.gz.sha256 (1)
1-1: LGTM!registry/modules/specfact-spec-0.40.23.tar.gz.sha256 (1)
1-1: LGTM!registry/signatures/specfact-backlog-0.41.30.tar.sig (1)
1-1: LGTM!registry/signatures/specfact-code-review-0.47.46.tar.sig (1)
1-1: LGTM!registry/signatures/specfact-codebase-0.41.13.tar.sig (1)
1-1: LGTM!registry/signatures/specfact-govern-0.40.25.tar.sig (1)
1-1: LGTM!registry/signatures/specfact-project-0.41.25.tar.sig (1)
1-1: LGTM!registry/signatures/specfact-spec-0.40.23.tar.sig (1)
1-1: LGTM!
…dle usage
- Correct the prompt-command validator mount for specfact_spec.sdd.commands
from ('specfact', 'spec') to ('specfact', 'spec', 'sdd') so it matches the
documented router (docs/bundles/spec/overview.md and
tests/unit/docs/test_bundle_overview_cli_examples.py).
- Restore the sdd segment in constitution and sdd list examples and runtime
hints (sdd/commands.py, sync_perform_operation_impl.py,
import_cmd/commands.py): 'specfact spec sdd constitution ...' and
'specfact spec sdd list'.
- Align bundle remediation hints with positional bundle arguments in
govern enforce sdd and project sync intelligent ('pass the bundle name
argument' instead of '--bundle option').
Addresses PR #320 review annotations from chatgpt-codex-connector and
coderabbitai.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/specfact-code-review/module-package.yaml (1)
25-27: 🔒 Security & Privacy | 🔴 Critical | ⚡ Quick winRoot cause: signing metadata was dropped across module manifests, breaking release integrity gates.
packages/specfact-code-review/module-package.yaml,packages/specfact-codebase/module-package.yaml,packages/specfact-govern/module-package.yaml,packages/specfact-project/module-package.yaml, andpackages/specfact-spec/module-package.yamlall rotate checksums but omitintegrity.signature; CI already confirms this with deterministic module-signature verification failures. Reintroduce signature fields for each bumped module manifest generated by the signing hook so manifest metadata and published payload signatures remain in parity.As per coding guidelines,
packages/**/module-package.yamlmust validate metadata and call out signing implications when manifests or payloads change.🤖 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 `@packages/specfact-code-review/module-package.yaml` around lines 25 - 27, The module manifests (the module-package.yaml entries that contain an integrity.checksum field) were updated to rotate checksums but dropped the corresponding integrity.signature metadata; restore an integrity.signature field in each bumped manifest (e.g., the integrity block in the module-package.yaml for the specfact-* modules) so the manifest includes both checksum and signature, and ensure the signing hook or validation step is invoked to regenerate and embed the correct signature after any payload or manifest change so deterministic module-signature verification passes.Sources: Coding guidelines, Pipeline failures
🤖 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 `@packages/specfact-code-review/module-package.yaml`:
- Around line 25-27: The module manifests (the module-package.yaml entries that
contain an integrity.checksum field) were updated to rotate checksums but
dropped the corresponding integrity.signature metadata; restore an
integrity.signature field in each bumped manifest (e.g., the integrity block in
the module-package.yaml for the specfact-* modules) so the manifest includes
both checksum and signature, and ensure the signing hook or validation step is
invoked to regenerate and embed the correct signature after any payload or
manifest change so deterministic module-signature verification passes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 632f95cb-e8d3-4c93-b7da-5f6242cae79b
📒 Files selected for processing (12)
packages/specfact-backlog/module-package.yamlpackages/specfact-code-review/module-package.yamlpackages/specfact-codebase/module-package.yamlpackages/specfact-govern/module-package.yamlpackages/specfact-govern/src/specfact_govern/enforce/commands.pypackages/specfact-project/module-package.yamlpackages/specfact-project/src/specfact_project/import_cmd/commands.pypackages/specfact-project/src/specfact_project/sync/commands.pypackages/specfact-project/src/specfact_project/sync_runtime/sync_perform_operation_impl.pypackages/specfact-spec/module-package.yamlpackages/specfact-spec/src/specfact_spec/sdd/commands.pyscripts/check-prompt-commands.py
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
nold-ai/specfact-cli(manual)
✅ Files skipped from review due to trivial changes (4)
- packages/specfact-project/src/specfact_project/sync_runtime/sync_perform_operation_impl.py
- packages/specfact-project/src/specfact_project/sync/commands.py
- packages/specfact-spec/src/specfact_spec/sdd/commands.py
- packages/specfact-govern/src/specfact_govern/enforce/commands.py
🚧 Files skipped from review as they are similar to previous changes (2)
- packages/specfact-backlog/module-package.yaml
- packages/specfact-project/src/specfact_project/import_cmd/commands.py
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: quality (3.12)
- GitHub Check: quality (3.13)
- GitHub Check: quality (3.11)
🧰 Additional context used
📓 Path-based instructions (3)
packages/**/module-package.yaml
⚙️ CodeRabbit configuration file
packages/**/module-package.yaml: Validate metadata: name, version, commands, dependencies, and parity with packaged src.
Call out semver and signing implications when manifests or payloads change.
Files:
packages/specfact-spec/module-package.yamlpackages/specfact-codebase/module-package.yamlpackages/specfact-code-review/module-package.yamlpackages/specfact-project/module-package.yamlpackages/specfact-govern/module-package.yaml
**/*.{js,ts,tsx,jsx,py,java,cs,go,rb,php,cpp,c,h}
📄 CodeRabbit inference engine (CLAUDE.md)
Preserve the clean-code compliance gate and its category references (naming, kiss, yagni, dry, and solid)
Files:
scripts/check-prompt-commands.py
scripts/**/*.py
⚙️ CodeRabbit configuration file
scripts/**/*.py: Deterministic tooling: signing, publishing, docs generation; subprocess and path safety.
Files:
scripts/check-prompt-commands.py
🪛 GitHub Actions: pr-orchestrator / 1_verify-module-signatures.txt
packages/specfact-spec/module-package.yaml
[error] 1-1: Module signature verification failed: missing integrity.signature
packages/specfact-codebase/module-package.yaml
[error] 1-1: Module signature verification failed: missing integrity.signature
packages/specfact-code-review/module-package.yaml
[error] 1-1: Module signature verification failed: missing integrity.signature
packages/specfact-project/module-package.yaml
[error] 1-1: Module signature verification failed: missing integrity.signature
packages/specfact-govern/module-package.yaml
[error] 1-1: Module signature verification failed: missing integrity.signature
🪛 GitHub Actions: pr-orchestrator / verify-module-signatures
packages/specfact-spec/module-package.yaml
[error] 1-1: Verify modules signature step failed: missing integrity.signature
packages/specfact-codebase/module-package.yaml
[error] 1-1: Verify modules signature step failed: missing integrity.signature
packages/specfact-code-review/module-package.yaml
[error] 1-1: Verify modules signature step failed: missing integrity.signature
packages/specfact-project/module-package.yaml
[error] 1-1: Verify modules signature step failed: missing integrity.signature
packages/specfact-govern/module-package.yaml
[error] 1-1: Verify modules signature step failed: missing integrity.signature
🔀 Multi-repo context nold-ai/specfact-cli
Linked repositories findings
nold-ai/specfact-cli
-
Tests calling or asserting flat commands (may need updates or are intentionally keeping old forms for compatibility):
- tests/integration/commands/test_repro_command.py:320 — asserts "specfact repro" present in output. [::nold-ai/specfact-cli::tests/integration/commands/test_repro_command.py:320]
- tests/integration/commands/test_repro_sidecar.py:18 — integration test for
specfact repro --sidecar. [::nold-ai/specfact-cli::tests/integration/commands/test_repro_sidecar.py:18] - tests/unit/docs/test_docs_validation_scripts.py:173,192–197 — templates and validation expect
specfact project sync bridge --helpbut also detect stale templates referencingspecfact sync bridge --help. [::nold-ai/specfact-cli::tests/unit/docs/test_docs_validation_scripts.py:173][::nold-ai/specfact-cli::tests/unit/docs/test_docs_validation_scripts.py:192-197] - tests/unit/migration/test_module_migration_07_cleanup.py:43 — looks for legacy patterns including "specfact sync ". [::nold-ai/specfact-cli::tests/unit/migration/test_module_migration_07_cleanup.py:43]
- tests/unit/workflows/test_trustworthy_green_checks.py:213 — checks for absence of specific repro invocation string. [::nold-ai/specfact-cli::tests/unit/workflows/test_trustworthy_green_checks.py:213]
-
CLI helpers, suggestions, and prompt validators that reference flat commands:
- tools/validate_prompts.py: mappings include "specfact sync bridge" and "specfact repro". These are used to validate embedded prompt/command strings. [::nold-ai/specfact-cli::tools/validate_prompts.py:50-53]
- src/specfact_cli/utils/suggestions.py:99,134 — suggestion strings include "specfact repro" and "specfact generate contracts". [::nold-ai/specfact-cli::src/specfact_cli/utils/suggestions.py:99][::nold-ai/specfact-cli::src/specfact_cli/utils/suggestions.py:134]
- scripts/runtime_discovery_smoke.py:360,372 — runtime smoke checks expect canonical
specfact project sync bridge --helpand assert if legacyspecfact sync bridge --helpstill resolves. [::nold-ai/specfact-cli::scripts/runtime_discovery_smoke.py:360][::nold-ai/specfact-cli::scripts/runtime_discovery_smoke.py:372] - scripts/export-change-to-github.py — wrapper/description builds
specfact sync bridgeinvocation for GitHub export. [::nold-ai/specfact-cli::scripts/export-change-to-github.py:2,33,80]
-
Extensive spec/docs references to flat commands that likely need review for consistency:
- Many openspec spec files reference
specfact sync bridge,specfact repro,specfact generate, and constitution commands; examples include openspec/specs/devops-sync/spec.md, openspec/specs/sidecar-validation/spec.md, openspec/specs/codebase-validation-depth/spec.md, and numerous files under openspec/changes and openspec/parking-lot. (Multiple locations: e.g., openspec/specs/devops-sync/spec.md:212–314,684; openspec/specs/sidecar-validation/spec.md:382–387). [::nold-ai/specfact-cli::openspec/specs/devops-sync/spec.md:212-314][::nold-ai/specfact-cli::openspec/specs/sidecar-validation/spec.md:382-387][::nold-ai/specfact-cli::openspec/specs/codebase-validation-depth/spec.md:19-106] - docs/reference/commands.md and docs/migration/migration-guide.md include mappings and migration guidance (e.g.,
specfact sync ...→specfact project sync ...). [::nold-ai/specfact-cli::docs/reference/commands.md:147][::nold-ai/specfact-cli::docs/migration/migration-guide.md:33,86,90]
- Many openspec spec files reference
-
CI / workflow references:
- docs/plans/ci-pr-orchestrator-log-artifacts.md and many CHANGELOG entries reference repro invocations (e.g.,
hatch run specfact repro --verbose --crosshair-required --budget 120). Tests and CI steps that capture repro output are relevant to the change. [::nold-ai/specfact-cli::docs/plans/ci-pr-orchestrator-log-artifacts.md:25][::nold-ai/specfact-cli::CHANGELOG.md]
- docs/plans/ci-pr-orchestrator-log-artifacts.md and many CHANGELOG entries reference repro invocations (e.g.,
Summary assessment:
- The repository contains many consumers (tests, scripts, prompt validators, docs, and openspec specs) referencing both legacy flat commands (specfact sync/generate/repro/sdd constitution) and their namespaced replacements. These are directly relevant to the PR’s changes that rename embedded examples and help text. Reviewers should verify tests, prompt validators (tools/validate_prompts.py), runtime smoke scripts (scripts/runtime_discovery_smoke.py), and openspec/doc artifacts were updated consistently and that any remaining legacy references are intentional (back-compat checks) or scheduled for separate migration.
🔇 Additional comments (1)
scripts/check-prompt-commands.py (1)
45-45: LGTM!
chore(modules): auto-sign module manifests
chore(registry): publish changed modules
chore(modules): auto-sign module manifests
chore(registry): publish changed modules
Add a unit test that re-runs scripts/generate-command-overview.py --check so stale llms.txt or generated command reference artifacts fail the quality matrix. The pre-commit overview gate is path-scoped and the PR orchestrator skips overview validation on dev-to-main promote runs, so stale artifacts could previously land unchecked (e.g. registry bot commits with [skip ci]). Skips when the specfact-cli dependency is not installed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Summary
Promotes
devtomain, carrying the flat command documentation alignment from #318 and the follow-up automated registry publish from #319:specfact sync→specfact project sync,specfact generate→specfact spec generate, flatspecfact sdd constitution→specfact spec constitution)Related to nold-ai/specfact-cli#605 and nold-ai/specfact-cli v0.47.6.
Validation
🤖 Generated with Claude Code