Repository navigation
refactor(source-control): read the commit and PR convention keys from docs/conventions/source-control.yaml #9725
Copy link
Copy link
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.
Description
Parent
Refs #5906
Depends on
- none: on the frontier now
Outcome
The source-control plugin's commit and PR convention keys (pr_body_required_sections and the per-key
convention keys config-resolution.md defines) resolve from docs/conventions/source-control.yaml, which
already holds pr_open_state; .claude/source-control.md is read only when the YAML lacks the key, for one
release. /source-control:setup writes the YAML.
Decisions
- ADR 0064 Decision 1: a plugin's team settings live in one
docs/conventions/<concern>.yaml, validated by a
JSON Schema atplugins/<plugin>/schemas/<concern>.schema.json(Decision 6), checked in CI by
scripts/check-convention-yaml.sh(Decision 7). Script readers use the shared readerlib/parse-concern-value.sh. - ADR 0075: layers are plugin default <
userConfig< team<home>/<concern>.yaml< personal
<home>/<concern>.local.<ext>; every resolver reports the layer that supplied each value. - Migrate per-skill .claude config files to userConfig, one conventions doc, or the cascade (ADR 0018) #5906 (comment 2026-10-04): each reader keeps reading the old file for one release when the new file is
absent, and this repository keeps its old file until the cleanup slice.
Key interfaces
plugins/source-control/schemas/source-control.schema.json,plugins/source-control/reference/config-resolution.md,
the commit, pull-request and setup skills,plugins/source-control/skills/pull-request/scripts/parse-branch-issue.sh.- harness-config's audit engine mentions of the old file (
plugins/harness-config/skills/audit/).
Done when
-
docs/conventions/source-control.yamlholdspr_body_required_sectionswith this repository's four sections, andscripts/check-convention-yaml.sh --checkexits 0. -
scripts/run-test-file.sh plugins/source-control/lib/config-root.test.shandscripts/run-test-file.sh plugins/source-control/skills/pull-request/scripts/parse-branch-issue.test.shexit 0, with cases for: the YAML value wins, the old file is read when the YAML lacks the key, and the resolver names the layer that supplied it. -
scripts/run-test-file.sh plugins/harness-config/skills/audit/scripts/audit-engine.test.shexits 0. -
git grep -n ".claude/source-control.md" -- plugins/source-control/skills/commit plugins/source-control/skills/pull-request plugins/source-control/skills/setupprints only compatibility-read lines. - The PR body lists each migrated key with its new home and schema.
-
scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.
Out of scope
- The
babysit_loop_*keys and the guardrails commit-convention resolver (their own slices under Migrate per-skill .claude config files to userConfig, one conventions doc, or the cascade (ADR 0018) #5906). - Deleting
.claude/source-control.md.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.
Type
Fields
No fields configured for Task.
Activity