feat(config): adopt platform's .config/<concern>/ bucket layout - #14
Merged
Conversation
Mirror musher-dev/platform's converged convention: tool configs live in concern buckets (actions/, markdown/, spelling/, yaml/), with lefthook.yml alone at the top level -- lefthook's config search does not descend past .config/lefthook.*, so bucketing it would silently disable every hook. The governance policy now walks .config/ recursively, keys the index and caller checks on bucket-relative paths, extends CFG-07 to files misplaced at the .config/ top level, and adds CFG-08 rejecting executables -- parity with platform's CFG-01..CFG-08. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
musher-dev/platformhas converged on a dotted.config/directory with concern buckets (.config/<concern>/<tool>.<ext>). This PR brings the template in line so both Musher repos share one convention.File moves (
git mv, history preserved):.config/markdownlint.jsonc.config/markdown/markdownlint.jsonc.config/yamllint.yaml.config/yaml/yamllint.yaml.config/actionlint.yaml.config/actions/actionlint.yaml.config/codespell.cfg.config/spelling/codespell.cfglefthook.ymlstays at the.config/top level: lefthook's config search (lefthook.*→.lefthook.*→.config/lefthook.*) does not descend into subdirectories, so bucketing it would silently disable every hook.Callers updated:
taskfiles/lint.Taskfile.ymland.config/lefthook.yml. CI needs no change — the Lint job runstask lint:all.Governance (
repo config check), now CFG-01..CFG-08 to match platform:.config/recursively; index (CFG-03) and orphan (CFG-04) checks key on bucket-relative paths.config/top level outside{README.md, lefthook.yml, lefthook-local.*}must move into a bucket.config/holds declarations, not programsDocs:
.config/README.mdindex and rules ("Flat" → "Bucket by concern"),CONFIGURATION.mddecision tree / quick reference / directory map,.repo/README.mdpolicy table.Verification
repo checkpasses on the new layout (all 6 policies)foo.yaml, orphaned bucket file, and.shfile raised CFG-07, CFG-03/04, and CFG-08 respectivelygrep -rE '\.config/(actionlint|codespell|markdownlint|yamllint)'is clean)task lint:alland the hook run are covered by this PR's CI🤖 Generated with Claude Code