feat: diagnose Repository Skill Set readiness - #37
Conversation
Roundfix-Spec: 0036-doctor-skill-readiness Roundfix-Task: task_01
…0260726T151545Z_50417ecaca9bab8d
Roundfix-Spec: 0036-doctor-skill-readiness Roundfix-Task: task_02
Roundfix-Spec: 0036-doctor-skill-readiness Roundfix-Task: task_01
Roundfix-Spec: 0036-doctor-skill-readiness Roundfix-Task: task_01
Roundfix-Spec: 0036-doctor-skill-readiness Roundfix-Task: task_03
Roundfix-Spec: 0036-doctor-skill-readiness
Roundfix-Spec: 0050-doctor-skill-readiness-hardening Roundfix-Task: task_01
Roundfix-Spec: 0050-doctor-skill-readiness-hardening Roundfix-Task: task_02
Roundfix-Spec: 0050-doctor-skill-readiness-hardening Roundfix-Task: task_03
Roundfix-Spec: 0050-doctor-skill-readiness-hardening Roundfix-Task: task_04
Roundfix-Spec: 0050-doctor-skill-readiness-hardening
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation Roundfix-Task: task_01
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation Roundfix-Task: task_02
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation Roundfix-Task: task_03
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation Roundfix-Task: task_04
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation Roundfix-Task: task_05
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation
Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation Roundfix-Task: task_06
…rtial) Roundfix-Spec: 0051-doctor-readiness-contract-reconciliation
WalkthroughThe PR adds Repository Skill Set readiness checks to ChangesDoctor skill readiness
Go testing guidance
Repository tooling configuration
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant Doctor
participant HealthChecks
participant RepositorySkills
User->>Doctor: run doctor
Doctor->>HealthChecks: run Node, ACPX, adapter, and profile checks
Doctor->>RepositorySkills: check repository skill readiness
RepositorySkills-->>Doctor: readiness status and remediation details
Doctor->>HealthChecks: run Codex check
Doctor-->>User: ordered one-line readiness results
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 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 @.agents/skills/golang-testing/SKILL.md:
- Around line 143-170: Reframe the “Assert Scope Leaking into Subtests” section
to comply with the repository’s standard-library-only testing policy. Remove
Testify references and rewrite both examples and the verification guidance using
subtest-local testing.T methods such as t.Errorf or t.Fatalf, while preserving
the requirement that failures are attributed to the correct subtest.
- Around line 75-88: Specify the fenced code block in the documentation around
the test-file naming examples with the text language identifier, changing the
opening fence to ```text while preserving the filename mapping content.
In @.roundfixrc.yml:
- Line 20: Remove the concrete gpt-5.6-terra model assignments from all affected
Roundfix profiles in .roundfixrc.yml, including the entries referenced at lines
20, 29, 47, and 56. Keep the profiles capability-oriented and rely on
runtime-owned configuration for provider/model fallback resolution.
In `@internal/cli/cli.go`:
- Around line 3780-3782: Update the doctor help text near the readiness
description to remove the stray conjunction before “required Agent Selection
Profiles,” leaving the enumeration as “the effective adapter, required Agent
Selection Profiles, the Repository Skill Set, and codex runtime hygiene.”
🪄 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: 9a919629-4649-4314-b5d7-4adaf5938ec1
⛔ Files ignored due to path filters (100)
docs/findings/2026-07-26-baseline-profile-refresh-retention-gap.mdis excluded by none and included by nonedocs/findings/2026-07-26-claude-adapter-configoptions-migration.mdis excluded by none and included by nonedocs/findings/2026-07-26-vortex-baseline-capability-remediation.mdis excluded by none and included by nonedocs/specs/0036-doctor-skill-readiness/task_01.mdis excluded by none and included by nonedocs/specs/0036-doctor-skill-readiness/task_02.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/_prd.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/_tasks.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/_techspec.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_01.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_02.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_03.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_04.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_05.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_06.mdis excluded by none and included by nonedocs/specs/0037-terminal-outcome-integrity/task_07.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/_prd.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/_tasks.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/_techspec.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_01.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_02.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_03.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_04.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_05.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_06.mdis excluded by none and included by nonedocs/specs/0038-terminal-run-worktree-reconciliation/task_07.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/_prd.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/_tasks.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/_techspec.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_01.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_02.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_03.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_04.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_05.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_06.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_07.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_08.mdis excluded by none and included by nonedocs/specs/0039-review-source-evidence-and-detached-outcomes/task_09.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/_prd.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/_tasks.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/_techspec.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/task_02.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/task_05.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/task_06.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/task_07.mdis excluded by none and included by nonedocs/specs/0042-verification-capacity-and-daemon-task-settlement/task_08.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/_prd.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/_tasks.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/_techspec.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/qa/evidence/2026-07-26-doctor-skill-readiness/command-evidence.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/qa/evidence/2026-07-26-doctor-skill-readiness/full-access-clean-flow.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/qa/qa-report-2026-07-26-01-partial.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/qa/qa-report-2026-07-26.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/task_01.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/task_02.mdis excluded by none and included by nonedocs/specs/_archived/0036-doctor-skill-readiness/task_03.mdis excluded by none and included by nonedocs/specs/_archived/0049-baseline-preservation-idempotency/_prd.mdis excluded by none and included by nonedocs/specs/_archived/0049-baseline-preservation-idempotency/_tasks.mdis excluded by none and included by nonedocs/specs/_archived/0049-baseline-preservation-idempotency/_techspec.mdis excluded by none and included by nonedocs/specs/_archived/0049-baseline-preservation-idempotency/task_01.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/_prd.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/_tasks.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/_techspec.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/command-evidence.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/-ais excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/10-guide.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/2-guide.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/A.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/_ais excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/nested/deeper/ß.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/nested/z.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/nested/É.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/nested/ä.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-corpus/é.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/qa-report-2026-07-26.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/task_01.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/task_02.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/task_03.mdis excluded by none and included by nonedocs/specs/_archived/0050-doctor-skill-readiness-hardening/task_04.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/_prd.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/_tasks.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/_techspec.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/qa/evidence/2026-07-26-doctor-readiness-1736dbc/command-evidence.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/qa/evidence/2026-07-26-doctor-readiness/command-evidence.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/qa/qa-report-2026-07-26.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/task_01.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/task_02.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/task_03.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/task_04.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/task_05.mdis excluded by none and included by nonedocs/specs/_archived/0051-doctor-readiness-contract-reconciliation/task_06.mdis excluded by none and included by nonedocs/user-guide/commands.mdis excluded by none and included by nonedocs/user-guide/usage.mdis excluded by none and included by nonego.sumis excluded by!**/*.sumand included bygo.suminternal/baseline/testdata/catalog.digestis excluded by!**/*.digestand included by noneskills/baseline_skill_contract_test.gois excluded by!skills/**and included by**/*.goskills/repository.gois excluded by!skills/**and included by**/*.goskills/repository_test.gois excluded by!skills/**and included by**/*.goskills/roundfix/SKILL.mdis excluded by!skills/**and included by noneskills/skills.gois excluded by!skills/**and included by**/*.goskills/skills_test.gois excluded by!skills/**and included by**/*.go
📒 Files selected for processing (22)
.agents/skills/golang-testing/SKILL.md.agents/skills/roundfix/SKILL.md.coderabbit.yaml.roundfixrc.ymlCONTEXT.mdREADME.mddocs/specs/_archived/0050-doctor-skill-readiness-hardening/qa/evidence/2026-07-26-doctor-skill-readiness/unicode-skills-lock.jsongo.modinternal/baseline/assets/lock-hash-compatibility-v1.jsoninternal/baseline/assets/setups/typescript-bun.jsoninternal/baseline/skills_restore.gointernal/baseline/testdata/catalog.normalized.jsoninternal/baseline/testdata/parity-corpus/v1/fixtures/asset-sync.jsoninternal/baseline/testdata/parity-corpus/v1/manifest.jsoninternal/cli/cli.gointernal/cli/cli_test.gointernal/cli/doctor.gointernal/cli/doctor_test.gointernal/cli/health.gointernal/skillhash/hash.gointernal/skillhash/hash_test.goskills-lock.json
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)
internal/cli/cli.go (1)
3781-3785: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winFix the malformed doctor help wording.
“The aggregate profiles: line exact-proves…” reads like an unfinished sentence and makes the
profiles:report label unclear. Rewrite this as a direct description, such as “Profiles are exact-proved per distinct tuple. Skills compare …”.🤖 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 `@internal/cli/cli.go` around lines 3781 - 3785, Rewrite the malformed doctor help text near the aggregate profiles and skills description into complete, direct sentences: clearly state that profiles are exact-proved per distinct tuple, then retain the existing skills comparison behavior and artifact distinctions. Keep the surrounding supported-version, adapter, and runtime-hygiene wording unchanged.Source: Coding guidelines
🤖 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 `@internal/cli/cli.go`:
- Around line 3781-3785: Rewrite the malformed doctor help text near the
aggregate profiles and skills description into complete, direct sentences:
clearly state that profiles are exact-proved per distinct tuple, then retain the
existing skills comparison behavior and artifact distinctions. Keep the
surrounding supported-version, adapter, and runtime-hygiene wording unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 298be557-399f-418e-a315-a8d879e107c8
⛔ Files ignored due to path filters (5)
docs/specs/_reviews/pr-37/round-001/issue_001.mdis excluded by none and included by nonedocs/specs/_reviews/pr-37/round-001/issue_002.mdis excluded by none and included by nonedocs/specs/_reviews/pr-37/round-001/issue_003.mdis excluded by none and included by nonedocs/specs/_reviews/pr-37/round-001/issue_004.mdis excluded by none and included by nonedocs/specs/_reviews/pr-37/round-001/round.mdis excluded by none and included by none
📒 Files selected for processing (2)
internal/cli/cli.gointernal/cli/cli_test.go
Add offline Repository Skill Set readiness to Doctor and make its filesystem and external hash checks deterministic.
Summary
roundfix doctor, with actionable remediation.Implementation notes
golang.org/x/textso Doctor and Baseline restoration cannot drift.Verification
rtk make verify— passed before publication and again in Roundfix Batch 001 after the review fix.rtk roundfix profiles validate --category review— passed for the preferred and fallback review selections.rtk roundfix watch --source coderabbit --pr 37 --until-clean— Round 001 resolved 1 issue, invalidated 3 with recorded reasons, and left 0 unresolved; Round 002 fetched 0 new issues.072ae5breports CodeRabbitSUCCESS, both CI checks passed, and the PR is approved. Roundfix reportedCleanUnverifiedbecause it did not observe that status within its grace window.rtk roundfix doctor— Node, acpx, adapter, and Codex checks passed; the full command reports the existing projectfrontendClaude profile as failed because its adapter evidence lacksconfig_options.Risk and rollback
The highest-risk areas are external path collation and the derived Baseline catalog digests. Reverting this PR restores the prior Doctor surface and hash behavior together.