Conversation
…segments. Filesystem-first resolution for ../ links matched markdown under docs/ while published permalinks under /bundles/ resolve differently in the browser, which hid broken cross-tree and cross-bundle links. Require published-route checks only for that combination, fix affected bundle overview links to use root-absolute /bundles/... and /reference/... targets, and add regression tests. Made-with: Cursor
Use canonical ## MODIFIED Requirements, ### Requirement, and #### Scenario blocks so openspec validate --strict passes and the change can be archived. Made-with: Cursor
Add worked examples for shadow mode, JSON output paths, --focus facets, folder-scoped --path runs, --level, --bug-hunt, noise and interactive flags. Document that run reviews .py/.pyi only and point Markdown validation to check-docs-commands. Fix bundle overview cross-links; link module notes to the bundle run guide for copy-pastable recipes. Made-with: Cursor
…inding. Pylint JSON can use line 0 for file-scoped messages; ReviewFinding requires line >= 1, so Pydantic ValidationError was raised, caught as ValueError, and the whole pylint step collapsed into a single tool_error. Normalize line to at least 1, substitute a placeholder for blank messages, strip stdout before JSON parse, and add regression tests. Made-with: Cursor
--level warning still includes warnings in scoring; only --level error drops warnings. Align run guide example and module notes with runner behavior. Made-with: Cursor
…wup-2 docs-15: bundle link validation, OpenSpec deltas, Code Review run guide
Blank or whitespace-only stdout no longer maps to zero findings; raise with stdout, stderr preview, and returncode so run_pylint surfaces a tool_error. Adds regression tests for empty and whitespace-only stdout. Made-with: Cursor
Mirror stderr truncation for huge stdout when pylint emits no JSON, and add a unit test for the long stderr branch. Made-with: Cursor
Add tests for negative line numbers and whitespace-only pylint messages. Made-with: Cursor
…runs. Document the flag in the quality gate checklist, repository command block, and clean-code gate notes so agents default to CrossHair bug-hunt budgets outside pre-commit. Made-with: Cursor
docs(agent-rules): require --bug-hunt on manual specfact code review runs
…ayload. Assert valid lines are preserved for W0702 and validate full finding fields when JSON is wrapped in surrounding whitespace. Made-with: Cursor
…oercion fix(code-review): coerce pylint line 0 and empty messages for ReviewFinding
|
Caution Review failedPull request was closed or merged during review No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (6)
📜 Recent review details🧰 Additional context used📓 Path-based instructions (2)registry/**⚙️ CodeRabbit configuration file
Files:
packages/**/module-package.yaml⚙️ CodeRabbit configuration file
Files:
🧠 Learnings (7)📓 Common learnings📚 Learning: 2026-04-02T21:49:07.435ZApplied to files:
📚 Learning: 2026-04-13T10:38:22.848ZApplied to files:
📚 Learning: 2026-04-13T10:38:43.535ZApplied to files:
📚 Learning: 2026-04-02T21:49:11.371ZApplied to files:
📚 Learning: 2026-04-13T10:38:22.848ZApplied to files:
📚 Learning: 2026-04-13T10:38:43.535ZApplied to files:
🔀 Multi-repo context nold-ai/specfact-cliLinked repositories findingsnold-ai/specfact-cli
Summary evaluation
🔇 Additional comments (6)
📝 WalkthroughRelease: dev→main merge (0.47.9→0.47.13)Bundle & Module Surface
Manifest & Integrity
Cross-repo / specfact-cli compatibility
Docs, site validation & CHANGELOG
OpenSpec changes & scenario coverage
Testing & Verification
Migration Guidance (actionable items)
WalkthroughAdds --bug-hunt and other CLI flags/specs for specfact code review, strengthens pylint_runner robustness, implements bundle-scoped hybrid docs link resolution with tests, introduces multiple new/open-spec documents (governance, CI signing, code-review tooling), and bumps the specfact-code-review package and registry metadata. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant CLI as specfact CLI
participant Runner as lint/analysis runners
participant Pylint as pylint (subprocess)
participant CrossHair as CrossHair (subprocess)
participant Reporter as JSON report/write
User->>CLI: invoke `specfact code review run` (--bug-hunt, --focus, --level, --mode)
CLI->>Runner: resolve file set (scope + repeated --focus facets)
Runner->>Pylint: run_pylint(files)
Pylint-->>Runner: stdout/stderr/returncode
Runner->>Runner: _payload_from_output(stdout, stderr, returncode)
Runner->>Runner: coerce line/message → findings
alt bug-hunt enabled
Runner->>CrossHair: run with per_path_timeout=10, total_timeout=120
else
Runner->>CrossHair: run with default timeouts
end
Runner->>Reporter: apply --level filter (pre-scoring)
CLI->>Reporter: enforce/shadow exit logic → write `.specfact/code-review.json`
Reporter-->>User: final JSON + exit (0 in shadow, conditional in enforce)
sequenceDiagram
participant DocsTool as docs_site_validation.py
participant Hybrid as resolve_internal_link_hybrid()
participant FS as filesystem resolver
participant Permalink as permalink/browser resolver
DocsTool->>Hybrid: resolve link from page with `permalink` under `/bundles/` and `..` path
Hybrid->>FS: resolve relative filesystem path
Hybrid->>Permalink: resolve via page permalink + browser rules
FS-->>Hybrid: filesystem target
Permalink-->>Hybrid: published target
Hybrid->>Hybrid: compare Path.resolve() results
alt targets match
Hybrid-->>DocsTool: return resolved target (ok)
else
Hybrid-->>DocsTool: return error (mismatch diagnostic)
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related issues
Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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: dc23ce9d34
ℹ️ 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".
chore(registry): publish changed modules
chore(modules): auto-sign module manifests
chore(registry): publish changed modules
There was a problem hiding this comment.
Actionable comments posted: 15
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@openspec/specs/agent-governance-loading/spec.md`:
- Line 4: Replace the "TBD" purpose line with a concise description of the
spec's intent: explain that this governance loading spec defines deterministic
agent bootstrap and rule-loading semantics (including order of operations,
idempotency guarantees, versioning/rollback behavior, and how runtime resolves
conflicts), and ensure the Purpose section references the archived change
"governance-04-deterministic-agent-governance-loading" for traceability; update
the Purpose paragraph in spec.md to explicitly state these goals and the
expected outcomes for agent initialization and rule resolution.
- Around line 3-6: The markdown headings (e.g., "## Purpose", "## Requirements",
"### Requirement: Compact AGENTS bootstrap contract") need blank lines before
and after them to satisfy markdownlint MD022; update the spec.md by inserting a
single blank line above each top-level and subheading and ensuring a blank line
separates the heading from the following paragraph or list so headings are
consistently spaced.
In `@openspec/specs/ci-integration/spec.md`:
- Around line 3-6: Add blank lines before and after the top-level headings shown
in the diff (specifically the "## Purpose" and "## Requirements" headings) to
satisfy markdownlint MD022; update the spec content around these markers so
there's an empty line above "## Purpose" and an empty line both above and below
"## Requirements" (and similarly for the "### Requirement: pr-orchestrator skips
signature requirement for dev-targeting events" subheading) to ensure consistent
markdown spacing.
In `@openspec/specs/ci-module-signing-on-approval/spec.md`:
- Around line 3-6: The Markdown headings (e.g., "## Purpose", "## Requirements",
and "### Requirement: Sign packages manifests on PR approval") need surrounding
blank lines for consistency with MD022; add a single blank line before and after
each heading so each heading is separated from adjacent paragraphs or lists to
satisfy markdownlint and match the other specs.
- Line 4: Replace the "TBD" Purpose placeholder under the Purpose heading with a
concise description mirroring the ci-integration spec: state that the CI signing
workflow will automatically sign changed module manifests on PR approval by
detecting changed files via merge-base, performing idempotent commits containing
only signature updates, and ensuring the process runs only after the archive
(marketplace-06-ci-module-signing) completion; mention merge-base detection,
automated signing of changed module manifests, idempotent commits, and that this
purpose replaces the placeholder once archive finalization completes.
In `@openspec/specs/code-review-bug-finding/spec.md`:
- Line 4: Replace the placeholder "TBD" in the Purpose section of the spec
(openspec/specs/code-review-bug-finding/spec.md) with a concise, final Purpose
statement that explains the spec's intent for downstream governance/docs
consumers; locate the Purpose header or the text on line 4 and update it to a
clear description summarizing the proposal/tasks/spec deltas, expected bundle
behavior, CHANGE_ORDER considerations, and how this spec relates to shipped
modules/docs.
- Around line 3-6: Add the required blank-line separation around markdown
headings to satisfy markdownlint MD022: ensure there is a single blank line
before each top-level/sub-heading and after the preceding paragraph or heading —
specifically insert a blank line before "## Purpose", before "## Requirements",
and before "### Requirement: Semgrep bug-finding rules pass" (and likewise add a
blank line after any preceding content) so each heading is separated by an empty
line.
In `@openspec/specs/code-review-tool-dependencies/spec.md`:
- Around line 3-6: Add blank lines before and after each Markdown heading in the
spec (e.g., "## Purpose", "## Requirements", and "### Requirement:
pip_dependencies cover all external review tools") so headings are separated
from surrounding text; update the section blocks to ensure a single blank line
above and below every heading throughout the file to satisfy MD022 and maintain
consistent markdown formatting.
- Line 4: Replace the placeholder Purpose line "TBD - created by archiving
change code-review-bug-finding-and-sidecar-venv-fix. Update Purpose after
archive." with a concise purpose statement describing this spec's intent: assert
completeness of pip_dependencies for required tools and define expected behavior
when tools are unavailable (graceful degradation, clear errors, and
telemetry/logging). Update the Purpose section in
openspec/specs/code-review-tool-dependencies/spec.md to explicitly mention
verifying pip_dependencies completeness and handling tool unavailability, so
reviewers and implementers know the spec goals.
In `@openspec/specs/review-run-command/spec.md`:
- Around line 85-188: Add assertions and new test cases in
test_dogfood_self_review.py to cover the new flags and JSON fields: invoke the
CLI via the existing helper that runs specfact code review run but include flag
combinations like "--bug-hunt --mode shadow --level error --json" and assert
that the parsed JSON includes ReviewRunRequest.bug_hunt == True,
ReviewReport.ci_exit_code == 0 when mode is "shadow" (and the process exitcode
returned by the runner is 0), and that the "findings" list has been pre-filtered
by severity for "--level error"/"--level warning" (e.g., only severity=="error"
for --level error; no "info" items for --level warning) and that score/verdict
are computed from the filtered list; add a focused test that composes flags
"--bug-hunt --mode shadow --json --out report.json" to assert CrossHair uses
bug-hunt timeouts via the same stubbing/mocking used for timeouts in other
tests, and ensure the new assertions reuse existing JSON parsing helpers (the
functions in test_dogfood_self_review.py that read CLI JSON output) so tests
remain consistent with current test harness.
In `@openspec/specs/sidecar-route-extraction/spec.md`:
- Around line 38-42: The scenario "Route count reflects real application routes
only" references a specific external repo "gpt-researcher" and an exact route
count which is too test-specific for the spec; update the spec.md by clarifying
the gpt-researcher mention (e.g., note it is a canonical reference repo used for
validation), or move this scenario into test documentation/TDD_EVIDENCE, or
generalize the wording to an abstract requirement such as "Route count reflects
actual application routes and is not inflated by scanning framework dependencies
(e.g., venv folders)"; ensure the scenario title and description are updated
accordingly so readers know whether this is a canonical example or a test
artifact.
- Around line 3-4: Replace the "TBD" under the Purpose heading with a concrete
statement that explains why the spec excludes ".specfact/" (i.e., to prevent the
sidecar-created virtualenv and workspace artifacts under .specfact/ from being
interpreted as application source during route extraction), mention the risk of
false positives in route discovery and the intended behavior (exclude .specfact/
so only real app files are used), and keep it concise and actionable; update the
Purpose paragraph under the "Purpose" heading to clearly reference ".specfact/"
and route extraction behavior so reviewers know the intent.
In `@packages/specfact-code-review/module-package.yaml`:
- Around line 25-26: The manifest is missing integrity.signature which causes
verify-modules-signature.py (used by pr-orchestrator) to fail; restore the
integrity.signature field in packages/**/module-package.yaml to a valid
signature value for the current payload and, if the payload changed, re-sign the
module (or bump semver per project signing policy) so the signature matches the
checksum and payload; after updating, run verify-modules-signature.py
--payload-from-filesystem --enforce-version-bump to confirm the restored
signature is accepted.
In
`@packages/specfact-code-review/src/specfact_code_review/tools/pylint_runner.py`:
- Around line 98-102: The stdout/stderr truncation logic in run_pylint
(variables out/err using stdout/stderr and the literal 4096) is duplicated;
extract a small helper (e.g., _truncate_text or truncate_output) that takes
(text, max_len=4096) and returns the truncated preview string, then replace the
two duplicated blocks in pylint_runner.py to call that helper for both out and
err (preserve the 4096 default and include the total-chars suffix behavior);
this centralizes the logic, removes duplication, and keeps naming
KISS/DRY-friendly.
In `@tests/unit/scripts/test_docs_site_validation_link_agreement.py`:
- Around line 22-57: The test can accidentally exercise the "missing published
route" path; instead ensure both filesystem and published routes exist but
differ so the function hits the explicit mismatch branch. In
test_hybrid_rejects_repo_relative_when_disk_and_browser_targets_diverge, keep
creating both source and target files but give the target a published permalink
that differs from its filesystem-derived route (so
dsv.resolve_internal_link_hybrid sees a valid pub_target and an fs_target that
are not equal), then assert target is None and err contains the mismatch
diagnostic (referencing resolve_internal_link_hybrid, published_page_route,
raw_link, fs_target and pub_target).
🪄 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: ASSERTIVE
Plan: Pro
Run ID: 507dffb4-2321-4447-a22f-c7e1838e02b0
📒 Files selected for processing (56)
docs/agent-rules/20-repository-context.mddocs/agent-rules/50-quality-gates-and-review.mddocs/bundles/code-review/overview.mddocs/bundles/code-review/run.mddocs/bundles/codebase/overview.mddocs/bundles/govern/overview.mddocs/bundles/project/overview.mddocs/bundles/spec/overview.mddocs/modules/code-review.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/.openspec.yamlopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/TDD_EVIDENCE.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/design.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/proposal.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/specs/code-review-bug-finding/spec.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/specs/code-review-tool-dependencies/spec.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/specs/contract-runner/spec.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/specs/review-cli-contracts/spec.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/specs/review-run-command/spec.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/specs/sidecar-route-extraction/spec.mdopenspec/changes/archive/2026-04-16-code-review-bug-finding-and-sidecar-venv-fix/tasks.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/.openspec.yamlopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/CHANGE_VALIDATION.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/TDD_EVIDENCE.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/design.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/proposal.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/specs/agent-governance-loading/spec.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/specs/github-hierarchy-cache/spec.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mdopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/.openspec.yamlopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/TDD_EVIDENCE.mdopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/design.mdopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/proposal.mdopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/specs/ci-integration/spec.mdopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/specs/ci-module-signing-on-approval/spec.mdopenspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/bundle-overview-pages/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-command-validation/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-publishing/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-pre-commit-quality-parity/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdopenspec/specs/agent-governance-loading/spec.mdopenspec/specs/ci-integration/spec.mdopenspec/specs/ci-module-signing-on-approval/spec.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/specs/code-review-tool-dependencies/spec.mdopenspec/specs/contract-runner/spec.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/review-cli-contracts/spec.mdopenspec/specs/review-run-command/spec.mdopenspec/specs/sidecar-route-extraction/spec.mdpackages/specfact-code-review/module-package.yamlpackages/specfact-code-review/src/specfact_code_review/tools/pylint_runner.pyscripts/docs_site_validation.pytests/unit/scripts/test_docs_site_validation_link_agreement.pytests/unit/specfact_code_review/tools/test_pylint_runner.py
📜 Review details
🧰 Additional context used
📓 Path-based instructions (8)
docs/**/*.md
⚙️ CodeRabbit configuration file
docs/**/*.md: User-facing and cross-site accuracy: Jekyll front matter, links per documentation-url-contract,
CLI examples matching bundled commands.
Files:
docs/bundles/govern/overview.mddocs/bundles/spec/overview.mddocs/bundles/codebase/overview.mddocs/agent-rules/20-repository-context.mddocs/bundles/code-review/overview.mddocs/bundles/project/overview.mddocs/modules/code-review.mddocs/agent-rules/50-quality-gates-and-review.mddocs/bundles/code-review/run.md
openspec/**/*.md
⚙️ CodeRabbit configuration file
openspec/**/*.md: Specification truth: proposal/tasks/spec deltas vs. bundle behavior, CHANGE_ORDER, and
drift vs. shipped modules or docs.
Files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/bundle-overview-pages/spec.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-publishing/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-command-validation/spec.mdopenspec/specs/contract-runner/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/sidecar-route-extraction/spec.mdopenspec/specs/ci-integration/spec.mdopenspec/specs/review-cli-contracts/spec.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/specs/ci-module-signing-on-approval/spec.mdopenspec/specs/review-run-command/spec.mdopenspec/specs/code-review-tool-dependencies/spec.mdopenspec/specs/agent-governance-loading/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-pre-commit-quality-parity/spec.md
docs/agent-rules/**/*.md
📄 CodeRabbit inference engine (.cursorrules)
Load
docs/agent-rules/INDEX.mdand canonical rule files selected by its applicability matrix
Files:
docs/agent-rules/20-repository-context.mddocs/agent-rules/50-quality-gates-and-review.md
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-code-review/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/docs_site_validation.pypackages/specfact-code-review/src/specfact_code_review/tools/pylint_runner.pytests/unit/specfact_code_review/tools/test_pylint_runner.pytests/unit/scripts/test_docs_site_validation_link_agreement.py
scripts/**/*.py
⚙️ CodeRabbit configuration file
scripts/**/*.py: Deterministic tooling: signing, publishing, docs generation; subprocess and path safety.
Files:
scripts/docs_site_validation.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-code-review/src/specfact_code_review/tools/pylint_runner.py
tests/**/*.py
⚙️ CodeRabbit configuration file
tests/**/*.py: Contract-first and integration tests: migration suites, bundle validation, and flakiness.
Ensure changes to adapters or bridges have targeted coverage.
Files:
tests/unit/specfact_code_review/tools/test_pylint_runner.pytests/unit/scripts/test_docs_site_validation_link_agreement.py
🧠 Learnings (28)
📓 Common learnings
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .cursorrules:0-0
Timestamp: 2026-04-13T10:38:15.855Z
Learning: Adhere to worktree policy, OpenSpec gating, GitHub hierarchy-cache refresh, TDD order, quality gates, versioning, and documentation rules as defined in `docs/agent-rules/`
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: Treat canonical rule docs (docs/agent-rules/INDEX.md) as the source of truth for worktree policy, OpenSpec gating, GitHub completeness checks, TDD order, quality gates, versioning, and documentation rules
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: This repository enforces the clean-code review gate through hatch run specfact code review run --json --out .specfact/code-review.json
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Fix SpecFact code review findings, including warnings, unless a rare explicit exception is documented
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: When a change is paired with work in specfact-cli, review the paired public change artifacts there before widening scope or redefining shared workflow semantics
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Work belongs on feature/*, bugfix/*, hotfix/*, or chore/* branches, normally in a worktree rooted under ../specfact-cli-modules-worktrees/
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:11.371Z
Learning: In nold-ai/specfact-cli-modules, module tarball signatures (registry/signatures/*.tar.sig) are generated by the `publish-modules` GitHub Actions runner during the publish workflow, not committed locally to the branch. Missing signature files should NOT be flagged as a pre-merge blocker in PRs.
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: This repository enforces the clean-code review gate through hatch run specfact code review run --json --out .specfact/code-review.json
Applied to files:
docs/bundles/codebase/overview.mddocs/agent-rules/20-repository-context.mddocs/bundles/code-review/overview.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/modules/code-review.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdopenspec/specs/github-hierarchy-cache/spec.mdpackages/specfact-code-review/module-package.yamlopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/review-cli-contracts/spec.mddocs/bundles/code-review/run.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/specs/review-run-command/spec.mdopenspec/specs/code-review-tool-dependencies/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Treat the clean-code compliance gate as mandatory: the review surface enforces `naming`, `kiss`, `yagni`, `dry`, and `solid` categories and blocks regressions
Applied to files:
docs/bundles/codebase/overview.mddocs/bundles/code-review/overview.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/review-cli-contracts/spec.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-pre-commit-quality-parity/spec.md
📚 Learning: 2026-04-02T21:49:11.371Z
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:11.371Z
Learning: In nold-ai/specfact-cli-modules, module tarball signatures (registry/signatures/*.tar.sig) are generated by the `publish-modules` GitHub Actions runner during the publish workflow, not committed locally to the branch. Missing signature files should NOT be flagged as a pre-merge blocker in PRs.
Applied to files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-publishing/spec.mdpackages/specfact-code-review/module-package.yamlopenspec/specs/ci-integration/spec.mdopenspec/specs/ci-module-signing-on-approval/spec.md
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Signed module or manifest changes require version-bump review and verify-modules-signature
Applied to files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/bundle-overview-pages/spec.mddocs/agent-rules/50-quality-gates-and-review.mdpackages/specfact-code-review/module-package.yamlopenspec/specs/ci-integration/spec.mdopenspec/specs/ci-module-signing-on-approval/spec.md
📚 Learning: 2026-04-13T10:38:29.399Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: When a change is paired with work in specfact-cli, review the paired public change artifacts there before widening scope or redefining shared workflow semantics
Applied to files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mddocs/bundles/code-review/overview.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/modules/code-review.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdopenspec/specs/contract-runner/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/review-cli-contracts/spec.mddocs/bundles/code-review/run.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/specs/ci-module-signing-on-approval/spec.mdopenspec/specs/review-run-command/spec.mdopenspec/specs/code-review-tool-dependencies/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Enforce module signatures and version bumps when signed module assets or manifests are affected
Applied to files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/specs/ci-integration/spec.mdopenspec/specs/ci-module-signing-on-approval/spec.md
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Work belongs on feature/*, bugfix/*, hotfix/*, or chore/* branches, normally in a worktree rooted under ../specfact-cli-modules-worktrees/
Applied to files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/bundles/project/overview.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/specs/github-hierarchy-cache/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Perform `spec -> tests -> failing evidence -> code -> passing evidence` in that order for behavior changes
Applied to files:
openspec/changes/archive/2026-04-16-marketplace-06-ci-module-signing/tasks.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/review-cli-contracts/spec.md
📚 Learning: 2026-04-13T10:38:15.855Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .cursorrules:0-0
Timestamp: 2026-04-13T10:38:15.855Z
Learning: Adhere to worktree policy, OpenSpec gating, GitHub hierarchy-cache refresh, TDD order, quality gates, versioning, and documentation rules as defined in `docs/agent-rules/`
Applied to files:
docs/agent-rules/20-repository-context.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-publishing/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/specs/agent-governance-loading/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-pre-commit-quality-parity/spec.md
📚 Learning: 2026-04-13T10:38:29.399Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: Treat canonical rule docs (docs/agent-rules/INDEX.md) as the source of truth for worktree policy, OpenSpec gating, GitHub completeness checks, TDD order, quality gates, versioning, and documentation rules
Applied to files:
docs/agent-rules/20-repository-context.mdopenspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-docs-publishing/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-pre-commit-quality-parity/spec.md
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Full governance rules live in docs/agent-rules/; do not treat this file (GitHub Copilot Instructions) as a complete standalone handbook
Applied to files:
docs/agent-rules/20-repository-context.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Read docs/agent-rules/INDEX.md to understand the applicability matrix for additional rule files
Applied to files:
docs/agent-rules/20-repository-context.mddocs/agent-rules/50-quality-gates-and-review.md
📚 Learning: 2026-04-13T10:38:15.855Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .cursorrules:0-0
Timestamp: 2026-04-13T10:38:15.855Z
Learning: Applies to docs/agent-rules/**/*.md : Load `docs/agent-rules/INDEX.md` and canonical rule files selected by its applicability matrix
Applied to files:
docs/agent-rules/20-repository-context.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Use docs/agent-rules/INDEX.md as the canonical governance dispatcher for governance rules
Applied to files:
docs/agent-rules/20-repository-context.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Read docs/agent-rules/05-non-negotiable-checklist.md before implementation
Applied to files:
openspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/agent-rules/50-quality-gates-and-review.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Read AGENTS.md as the mandatory bootstrap governance surface for coding agents working in this repository
Applied to files:
openspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Run the required verification and quality gates for the touched scope before finalization
Applied to files:
openspec/changes/archive/2026-04-16-governance-04-deterministic-agent-governance-loading/tasks.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Fix SpecFact code review findings, including warnings, unless a rare explicit exception is documented
Applied to files:
docs/modules/code-review.mddocs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/review-run-command/spec.mdpackages/specfact-code-review/module-package.yamlopenspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.mdopenspec/specs/review-cli-contracts/spec.mdopenspec/specs/code-review-bug-finding/spec.mdopenspec/specs/review-run-command/spec.mdopenspec/specs/code-review-tool-dependencies/spec.md
📚 Learning: 2026-04-13T10:38:29.399Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: Applies to **/*.{js,ts,tsx,jsx,py,java,cs,go,rb,php,cpp,c,h} : Preserve the clean-code compliance gate and its category references (naming, kiss, yagni, dry, and solid)
Applied to files:
docs/agent-rules/50-quality-gates-and-review.mdopenspec/changes/docs-15-code-review-validation-guardrails/specs/modules-pre-commit-quality-parity/spec.md
📚 Learning: 2026-04-13T10:38:29.399Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: Treat clean-code regressions (naming, kiss, yagni, dry, solid violations) as blocking until they are fixed or explicitly justified
Applied to files:
docs/agent-rules/50-quality-gates-and-review.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: If GitHub hierarchy metadata is needed and `.specfact/backlog/github_hierarchy_cache.md` is missing or stale, refresh it with `python scripts/sync_github_hierarchy_cache.py`
Applied to files:
openspec/specs/github-hierarchy-cache/spec.md
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Refresh .specfact/backlog/github_hierarchy_cache.md with python scripts/sync_github_hierarchy_cache.py when GitHub hierarchy metadata is missing or stale before parent or blocker work
Applied to files:
openspec/specs/github-hierarchy-cache/spec.md
📚 Learning: 2026-04-13T10:38:29.399Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-04-13T10:38:29.399Z
Learning: Follow AGENTS.md as the primary bootstrap contract, then load the canonical governance docs in docs/agent-rules/INDEX.md
Applied to files:
openspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:15.855Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .cursorrules:0-0
Timestamp: 2026-04-13T10:38:15.855Z
Learning: Applies to AGENTS.md : Follow `AGENTS.md` as the mandatory bootstrap contract
Applied to files:
openspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:22.848Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-04-13T10:38:22.848Z
Learning: Use AGENTS.md as the mandatory bootstrap surface for understanding agent responsibilities and configurations
Applied to files:
openspec/specs/github-hierarchy-cache/spec.mdopenspec/specs/agent-governance-loading/spec.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Finalize completed OpenSpec changes with `openspec archive <change-id>` and do not manually move change folders under `openspec/changes/archive/`
Applied to files:
openspec/changes/docs-15-code-review-validation-guardrails/TDD_EVIDENCE.md
📚 Learning: 2026-04-13T10:38:43.535Z
Learnt from: CR
Repo: nold-ai/specfact-cli-modules PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-04-13T10:38:43.535Z
Learning: Load additional rule files required by the applicability matrix in docs/agent-rules/INDEX.md before implementation
Applied to files:
openspec/specs/agent-governance-loading/spec.md
🪛 GitHub Actions: pr-orchestrator
packages/specfact-code-review/module-package.yaml
[error] 1-1: Module signature verification failed: missing integrity.signature (command: python scripts/verify-modules-signature.py --payload-from-filesystem --enforce-version-bump)
🪛 LanguageTool
openspec/specs/agent-governance-loading/spec.md
[uncategorized] ~114-~114: The official name of this software platform is spelled with a capital “H”.
Context: ...ce such as CLAUDE.md, .cursorrules, .github/copilot-instructions.md, or generated ...
(GITHUB)
🪛 markdownlint-cli2 (0.22.0)
openspec/specs/ci-integration/spec.md
[warning] 3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
openspec/specs/code-review-bug-finding/spec.md
[warning] 3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
openspec/specs/ci-module-signing-on-approval/spec.md
[warning] 3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
openspec/specs/code-review-tool-dependencies/spec.md
[warning] 3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
openspec/specs/agent-governance-loading/spec.md
[warning] 3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
[warning] 5-5: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 6-6: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Above
(MD022, blanks-around-headings)
🔀 Multi-repo context nold-ai/specfact-cli
nold-ai/specfact-cli
-
CLI wiring / callers of the documented command:
- scripts/pre_commit_code_review.py — builds and runs nested
specfact code review run --json --out .specfact/code-review.json(calls the documented invocation). [::nold-ai/specfact-cli::scripts/pre_commit_code_review.py:93,173,210,272,277] - docs and README references to the command (many locations updated to include
--bug-huntin docs): docs/modules/code-review.md, docs/agent-rules/20-repository-context.md, docs/agent-rules/50-quality-gates-and-review.md, README.md, docs/_support/*. [::nold-ai/specfact-cli::docs/modules/code-review.md][::nold-ai/specfact-cli::docs/agent-rules/20-repository-context.md][::nold-ai/specfact-cli::docs/agent-rules/50-quality-gates-and-review.md][::nold-ai/specfact-cli::README.md][::nold-ai/specfact-cli::docs/_support/readme-first-contact/capture-metadata.txt]
- scripts/pre_commit_code_review.py — builds and runs nested
-
Tests and dogfood evidence that exercise/expect
specfact code review runbehavior (may need to account for --bug-hunt semantics / JSON output changes):- tests/unit/specfact_cli/test_dogfood_self_review.py — uses helper to run the review and asserts overall_verdict. [::nold-ai/specfact-cli::tests/unit/specfact_cli/test_dogfood_self_review.py:26,59,72]
- tests/e2e/test_wow_entrypoint.py and various openspec TDD_EVIDENCE files reference running the command and expecting JSON reports. [::nold-ai/specfact-cli::tests/e2e/test_wow_entrypoint.py][::nold-ai/specfact-cli::openspec/changes/**/TDD_EVIDENCE.md]
-
Pylint runner / spec interactions:
- openspec specs and archive references to run_pylint / pylint_runner indicate expected behavior/contract for run_pylint (including mapping and error reporting). Changes in packages/specfact-code-review (pylint_runner) affect these contracts. [::nold-ai/specfact-cli::openspec/specs/pylint-runner/spec.md][::nold-ai/specfact-cli::openspec/changes/archive/*/TDD_EVIDENCE.md]
- tests/unit/specfact_code_review/tools/test_pylint_runner.py added/strengthened — ensure the new coercion and tool_error behaviors align with consumers that parse
specfact code review run --jsonoutput. [::nold-ai/specfact-cli::tests/unit/specfact_code_review/tools/test_pylint_runner.py]
-
Config/specs that explicitly require/describe the new --bug-hunt flag and its behavior (timeouts, compatibility with other flags):
- openspec/specs/review-run-command/spec.md and openspec/specs/code-review-bug-finding/spec.md define
--bug-huntsemantics and the additional Semgrep bug-finding pass; documentation changes in this PR align with those specs and will affect any integration tests or CI that expect the flag to be honored. [::nold-ai/specfact-cli::openspec/specs/review-run-command/spec.md][::nold-ai/specfact-cli::openspec/specs/code-review-bug-finding/spec.md]
- openspec/specs/review-run-command/spec.md and openspec/specs/code-review-bug-finding/spec.md define
-
Docs site validation / link-resolution changes:
- scripts/docs_site_validation.py and its new tests (tests/unit/scripts/test_docs_site_validation_link_agreement.py) change link-resolution semantics for /bundles/ pages when
..traversal appears; any tooling or CI that depends on legacy filesystem-first behavior for bundle-scoped pages may be affected. [::nold-ai/specfact-cli::scripts/docs_site_validation.py][::nold-ai/specfact-cli::tests/unit/scripts/test_docs_site_validation_link_agreement.py]
- scripts/docs_site_validation.py and its new tests (tests/unit/scripts/test_docs_site_validation_link_agreement.py) change link-resolution semantics for /bundles/ pages when
Reflection: the repo contains multiple consumers (pre-commit helper, tests, docs, openspec contracts) that reference or depend on specfact code review run behavior and on the pylint runner contracts. The PR's doc-only changes (adding --bug-hunt to examples) are consistent with spec additions, but the code-level pylint_runner changes and test updates in the specfact-code-review package (mentioned in the PR) are relevant to this repo because tests, docs, and pre-commit hooks expect consistent JSON output and tool-error semantics.
Promotes the current
devline tomain, including recently merged work:#208): coerce pylint line 0 and empty messages forReviewFinding; treat empty/whitespace-only stdout as a parse failure with stderr/returncode context and stdout/stderr truncation previews; strengthen unit tests.#209): document--bug-hunton manualspecfact code review runinvocations in quality gates and repository context.#207and related): code review run docs (--levelsemantics), bundle overview link validation, docs site validation tests, and OpenSpec/docs-15 followups as already merged ondev.Verification:
devreflects the merged PRs above; CI on this PR should run the full quality matrix for themainmerge path.Made with Cursor