@thebassclef/lite 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +85 -4
  3. package/dist/cli.cjs +1610 -0
  4. package/dist/cli.js +1587 -0
  5. package/dist/index.cjs +4 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +4 -0
  8. package/package.json +51 -3
  9. package/substrate/.bassclef/lite-manifest.json +1794 -0
  10. package/substrate/.claude/agents/architect.md +70 -0
  11. package/substrate/.claude/agents/builder.md +114 -0
  12. package/substrate/.claude/agents/designer.md +156 -0
  13. package/substrate/.claude/agents/reviewer.md +88 -0
  14. package/substrate/.claude/hooks/artifact-ingestion-gate.sh +357 -0
  15. package/substrate/.claude/hooks/assert-verify-steering.sh +77 -0
  16. package/substrate/.claude/hooks/bassclef-source-config-validate.sh +215 -0
  17. package/substrate/.claude/hooks/bassclef-sync.sh +634 -0
  18. package/substrate/.claude/hooks/compound-noun-scrub.sh +292 -0
  19. package/substrate/.claude/hooks/kiss-expansion-inject.sh +69 -0
  20. package/substrate/.claude/hooks/plain-english-steering.sh +156 -0
  21. package/substrate/.claude/hooks/post-skill-friction-check.sh +177 -0
  22. package/substrate/.claude/hooks/post-skill-telemetry.sh +62 -0
  23. package/substrate/.claude/hooks/pre-build-gate.sh +511 -0
  24. package/substrate/.claude/hooks/pre-commit-gate.sh +452 -0
  25. package/substrate/.claude/hooks/session-end.sh +433 -0
  26. package/substrate/.claude/hooks/session-reflection.sh +303 -0
  27. package/substrate/.claude/hooks/skill-body-grade-gate.sh +219 -0
  28. package/substrate/.claude/hooks/skill-body-intent-drift.sh +107 -0
  29. package/substrate/.claude/hooks/skill-step-list-check.sh +171 -0
  30. package/substrate/.claude/hooks/state-validate.sh +271 -0
  31. package/substrate/.claude/hooks/substrate-clarity-gate.sh +1110 -0
  32. package/substrate/.claude/hooks/temperance-gate.sh +147 -0
  33. package/substrate/.claude/hooks/testing-tier-enforce.sh +233 -0
  34. package/substrate/.claude/hooks/turn-prose-grade-measure.sh +219 -0
  35. package/substrate/.claude/hooks/turn-prose-kiss-check.sh +434 -0
  36. package/substrate/.claude/hooks/vocabulary-migration-check.sh +171 -0
  37. package/substrate/.claude/hooks/whereami-utc-gate.sh +142 -0
  38. package/substrate/.claude/luminaries/alan-cooper.md +170 -0
  39. package/substrate/.claude/luminaries/alistair-cockburn.md +140 -0
  40. package/substrate/.claude/luminaries/amazon-pr-faq.md +34 -0
  41. package/substrate/.claude/luminaries/ash-maurya.md +121 -0
  42. package/substrate/.claude/luminaries/bill-buxton.md +210 -0
  43. package/substrate/.claude/luminaries/charles-sanders-peirce.md +150 -0
  44. package/substrate/.claude/luminaries/david-ogilvy.md +192 -0
  45. package/substrate/.claude/luminaries/don-norman.md +173 -0
  46. package/substrate/.claude/luminaries/edward-tufte.md +179 -0
  47. package/substrate/.claude/luminaries/eric-evans.md +160 -0
  48. package/substrate/.claude/luminaries/frederick-brooks.md +50 -0
  49. package/substrate/.claude/luminaries/gang-of-four.md +157 -0
  50. package/substrate/.claude/luminaries/jason-fried-dhh.md +46 -0
  51. package/substrate/.claude/luminaries/jesse-james-garrett.md +154 -0
  52. package/substrate/.claude/luminaries/john-ousterhout.md +94 -0
  53. package/substrate/.claude/luminaries/karl-popper.md +132 -0
  54. package/substrate/.claude/luminaries/kent-beck.md +168 -0
  55. package/substrate/.claude/luminaries/linus-torvalds.md +218 -0
  56. package/substrate/.claude/luminaries/martin-fowler.md +164 -0
  57. package/substrate/.claude/luminaries/michael-feathers.md +125 -0
  58. package/substrate/.claude/luminaries/michael-nygard.md +118 -0
  59. package/substrate/.claude/luminaries/robert-c-martin.md +164 -0
  60. package/substrate/.claude/luminaries/saltzer-schroeder.md +194 -0
  61. package/substrate/.claude/luminaries/sophia-prater.md +193 -0
  62. package/substrate/.claude/luminaries/stephen-toulmin.md +131 -0
  63. package/substrate/.claude/rules/artifact-ingestion.md +179 -0
  64. package/substrate/.claude/rules/assert-only-after-verify.md +137 -0
  65. package/substrate/.claude/rules/blocked-items.md +146 -0
  66. package/substrate/.claude/rules/branching.md +28 -0
  67. package/substrate/.claude/rules/commit-conventions.md +22 -0
  68. package/substrate/.claude/rules/context-engineering.md +202 -0
  69. package/substrate/.claude/rules/context-management.md +85 -0
  70. package/substrate/.claude/rules/destructive-operations.md +69 -0
  71. package/substrate/.claude/rules/diagnosis.md +38 -0
  72. package/substrate/.claude/rules/guardrails.md +73 -0
  73. package/substrate/.claude/rules/identifier-leak-prevention.md +104 -0
  74. package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +98 -0
  75. package/substrate/.claude/rules/oo-ad-entry-point.md +117 -0
  76. package/substrate/.claude/rules/operator-facing-prose.md +196 -0
  77. package/substrate/.claude/rules/plain-english-discipline.md +154 -0
  78. package/substrate/.claude/rules/pr-body-shape.md +317 -0
  79. package/substrate/.claude/rules/pr-strategy.md +167 -0
  80. package/substrate/.claude/rules/sdlc-gates.md +149 -0
  81. package/substrate/.claude/rules/session-artifacts.md +236 -0
  82. package/substrate/.claude/rules/state-schema-validation.md +162 -0
  83. package/substrate/.claude/rules/whereami-load-bearing.md +202 -0
  84. package/substrate/.claude/rules/writing-craft-discipline.md +92 -0
  85. package/substrate/.claude/skills/build/SKILL.md +640 -0
  86. package/substrate/.claude/skills/decompose/SKILL.md +280 -0
  87. package/substrate/.claude/skills/diagnose/SKILL.md +297 -0
  88. package/substrate/.claude/skills/howdoi/SKILL.md +105 -0
  89. package/substrate/.claude/skills/ia-model/SKILL.md +108 -0
  90. package/substrate/.claude/skills/interaction-design/SKILL.md +112 -0
  91. package/substrate/.claude/skills/interpret-input/SKILL.md +180 -0
  92. package/substrate/.claude/skills/kiss/SKILL.md +449 -0
  93. package/substrate/.claude/skills/launch/SKILL.md +924 -0
  94. package/substrate/.claude/skills/lean-canvas/SKILL.md +332 -0
  95. package/substrate/.claude/skills/longrun/SKILL.md +426 -0
  96. package/substrate/.claude/skills/luminary/SKILL.md +481 -0
  97. package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +177 -0
  98. package/substrate/.claude/skills/onboard-repo/SKILL.md +2190 -0
  99. package/substrate/.claude/skills/pattern-review/SKILL.md +99 -0
  100. package/substrate/.claude/skills/personas/SKILL.md +207 -0
  101. package/substrate/.claude/skills/promote/SKILL.md +283 -0
  102. package/substrate/.claude/skills/requirement/SKILL.md +98 -0
  103. package/substrate/.claude/skills/retro/SKILL.md +117 -0
  104. package/substrate/.claude/skills/riff/SKILL.md +114 -0
  105. package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +163 -0
  106. package/substrate/.claude/skills/session-end/SKILL.md +309 -0
  107. package/substrate/.claude/skills/session-log/SKILL.md +299 -0
  108. package/substrate/.claude/skills/skills/SKILL.md +228 -0
  109. package/substrate/.claude/skills/spec/SKILL.md +105 -0
  110. package/substrate/.claude/skills/sprint/SKILL.md +392 -0
  111. package/substrate/.claude/skills/stage/SKILL.md +384 -0
  112. package/substrate/.claude/skills/state-a-problem/SKILL.md +185 -0
  113. package/substrate/.claude/skills/temperance/SKILL.md +108 -0
  114. package/substrate/.claude/skills/use-case/SKILL.md +417 -0
  115. package/substrate/.claude/skills/user-stories/SKILL.md +268 -0
  116. package/substrate/.claude/skills/value-prop/SKILL.md +251 -0
  117. package/substrate/.claude/skills/verify/SKILL.md +160 -0
  118. package/substrate/.claude/skills/whereami/SKILL.md +307 -0
  119. package/substrate/AGENTS.md +79 -0
  120. package/substrate/CLAUDE-lite.md +85 -0
  121. package/substrate/CODE_OF_CONDUCT.md +28 -0
  122. package/substrate/CONTRIBUTING.md +177 -0
  123. package/substrate/README.md +173 -0
  124. package/substrate/SECURITY.md +19 -0
  125. package/substrate/architecture/decisions/ADR-029-release-pipeline.md +79 -0
  126. package/substrate/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +139 -0
  127. package/substrate/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +192 -0
  128. package/substrate/architecture/decisions/ADR-039-release-tagging-scheme.md +145 -0
  129. package/substrate/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +155 -0
  130. package/substrate/architecture/decisions/ADR-044-unified-skill-body-template.md +162 -0
  131. package/substrate/lib/clean-artifacts-sweep.sh +112 -0
  132. package/substrate/lib/code-comment-discipline.sh +144 -0
  133. package/substrate/lib/composer-preflight.sh +459 -0
  134. package/substrate/lib/hook-inject.sh +255 -0
  135. package/substrate/lib/luminary-pick.sh +96 -0
  136. package/substrate/lib/output-discipline.sh +143 -0
  137. package/substrate/lib/rewrite-check.sh +214 -0
  138. package/substrate/lib/state.sh +1372 -0
  139. package/substrate/lib/telemetry.sh +205 -0
  140. package/substrate/lib/tier-check.sh +138 -0
  141. package/substrate/lib/tier-dependency-audit.sh +933 -0
  142. package/substrate/presence/install/bassclef-hook-connect.sh +178 -0
  143. package/substrate/presence/install/bassclef-sync.dispatcher.template.sh +841 -0
  144. package/substrate/presence/install/bassclef-sync.template.sh +2076 -0
  145. package/substrate/presence/install/schedule-auto-save.cron.sh +88 -0
  146. package/substrate/presence/install/schedule-auto-save.taskscheduler.md +122 -0
  147. package/substrate/scripts/aggregate-telemetry.sh +217 -0
  148. package/substrate/scripts/analyze-tier-dependencies.sh +239 -0
  149. package/substrate/scripts/generate-lite-manifest.sh +489 -0
  150. package/substrate/scripts/generate-tier-manifest.sh +28 -0
  151. package/substrate/scripts/intent-drift-check.sh +456 -0
  152. package/substrate/scripts/lite-manifest-drift-check.sh +146 -0
  153. package/substrate/scripts/render-lite-manifest-doc.sh +150 -0
  154. package/substrate/standards/bassclef-configs-schema.md +232 -0
  155. package/substrate/standards/bassclef-evolution.md +143 -0
  156. package/substrate/standards/bassclef-internal-jargon.md +244 -0
  157. package/substrate/standards/bassclef-managed-sentinel.md +96 -0
  158. package/substrate/standards/bassclef-source-config.md +228 -0
  159. package/substrate/standards/deferred-actions-schema.md +204 -0
  160. package/substrate/standards/docs-sync-allowlist.md +76 -0
  161. package/substrate/standards/graceful-exit.md +227 -0
  162. package/substrate/standards/hook-idempotency.md +102 -0
  163. package/substrate/standards/lite-manifest-schema-changes.md +75 -0
  164. package/substrate/standards/luminary-problem-patterns.md +481 -0
  165. package/substrate/standards/ogilvy-writing-rules.md +225 -0
  166. package/substrate/standards/opener-discipline.md +96 -0
  167. package/substrate/standards/operator-facing-prose-discipline.md +201 -0
  168. package/substrate/standards/project-directory-layout.md +276 -0
  169. package/substrate/standards/release-tagging.md +137 -0
  170. package/substrate/standards/sdlc-compliance.md +286 -0
  171. package/substrate/standards/secrets-lifecycle.md +210 -0
  172. package/substrate/standards/security-scanner-adapter.md +145 -0
  173. package/substrate/standards/skill-output-discipline.md +90 -0
  174. package/substrate/standards/state-spine.md +511 -0
  175. package/substrate/standards/tech-stack-config.md +109 -0
  176. package/substrate/standards/tier-dependency-analysis.md +167 -0
  177. package/substrate/standards/tier-runtime-deps/lite.md +57 -0
  178. package/substrate/standards/tier-tag-schema.md +155 -0
  179. package/substrate/standards/whereami-schema.md +301 -0
  180. package/substrate/standards/writing-guide.md +213 -0
  181. package/substrate/templates/deferred-action-template.md +45 -0
  182. package/substrate/templates/whereami-template.md +101 -0
@@ -0,0 +1,160 @@
1
+ ---
2
+ tier: lite
3
+ name: verify
4
+ description: Post-build verification gate — run after each task before committing. Matches change type to appropriate verification and writes a marker the pre-commit hook reads.
5
+ problem: "Tests run but scope-drift and missed acceptance and ADR violations slip through."
6
+ value: "Post-build gate that matches change type to check list. Runs before commit not after."
7
+ inputs: [Change type or scope hint]
8
+ outputs: [Check results per gate, Blocking findings, Ready-to-commit signal]
9
+ user_invocable: true
10
+ disable_model_invocation: false
11
+ ---
12
+
13
+ # Verify
14
+
15
+ ## What you get
16
+
17
+ Post-build verification gate. Run `/verify` after any task before committing code. I look at the type of change. I run the matching verification. I confirm the production build passes.
18
+
19
+ When everything clears, I write a marker at `state/markers/verify/<branch>.marker`. The pre-commit-gate hook reads that marker. Without it, the hook blocks your commit. This is the check between "tests green" and "safe to ship."
20
+
21
+ ## When to use it
22
+
23
+ After each task, before committing code. Not before you push. Not once per session. Each task.
24
+
25
+ If you change a pure function, run `/verify`. If you touch a route, run `/verify`. If you edit middleware, run `/verify`. The change-type table maps what you touched to what verification fires. One skipped `/verify` is how broken production builds ship — POA session 2026-04-12 lost hours to 6 CI deploys that broke because someone assumed "tests pass = safe."
26
+
27
+ Docs-only edits and config edits are the exception. State "docs/config only" in the summary and skip verification.
28
+
29
+ ## FAQ
30
+
31
+ ### What is the marker and why does it matter?
32
+
33
+ The pre-commit-gate hook reads `state/markers/verify/<branch>.marker`. If the marker is missing or older than 5 minutes, the hook blocks the commit. The hook emits `BLOCKED: /verify` which the blocked-items rule requires you to resolve (run `/verify`) or explicitly defer (with stated rationale — silence is not deferral).
34
+
35
+ The 5-minute window means re-running `/verify` refreshes the marker. Ephemeral sessions (mobile claude.ai/code) also write to `/tmp/claude-verify-<branch>` for desktop parity.
36
+
37
+ ### Do I need to run tests AND the production build?
38
+
39
+ Both. Tests can pass while the production build fails. Vitest and Jest are permissive. The production build applies stricter rules — type narrowing catches, tree-shaking issues, bundler-specific module resolution, Next.js route-segment contract violations, strict null checks in inferred unions.
40
+
41
+ If tests pass but the build fails, `/verify` fails. Do not commit. Do not write the marker.
42
+
43
+ Evidence why this matters: POA session 2026-04-12 shipped 5 PRs (#480, #486, #488, #490, #492) with all tests passing locally. All 6 resulting CI deploys failed because the production build applied stricter rules. Prod stuck on the old image until hotfix — hours of reversed velocity.
44
+
45
+ ### What about UI changes and visual review?
46
+
47
+ UI component or page changes MUST run `/visual-review`. The skill screenshots each page via Playwright MCP, evaluates against the usability standard and the complement luminaries, and outputs a report to `docs/visual-reviews/YYYY-MM-DD-<page>.md`. No report = do not commit.
48
+
49
+ Empty state is NOT verification — seed data first. If Playwright MCP is unavailable, do the manual check and note "manual — no screenshot" in the report.
50
+
51
+ ### What about substrate-affecting changes?
52
+
53
+ Any staged or recently committed change matching the 12 patterns from `.claude/rules/cold-adopter-harness-discipline.md` § "When this rule fires" — hooks, skills, rules, agents, luminaries, lib, standards, schemas, sync templates, ADRs, workflows, scripts — runs `bash scripts/cold-adopter-harness-sync.sh --mode sync --target .` and reports pass/fail. Exit 0 = pass; exit 2 = at least one check failed; exit 3 = setup failure.
54
+
55
+ Override: `SKIP_COLD_ADOPTER_HARNESS=1 /verify` (logged via trace-helper). The pre-commit-gate hook and CI workflow fire the same matcher independently. Three layers together give the coverage you need.
56
+
57
+ ### What if I wrote the test after the code?
58
+
59
+ State so in the summary — "test written after; check for tautology." Reviewer audits the test against Beck's four rules of simple design (all tests pass; code reveals intention; no duplication; fewest elements). A passing suite that reads as pattern-match against the code you already shipped is green but not done.
60
+
61
+ ### What if the change traces to a use case?
62
+
63
+ If the change implements behavior spec'd in a fully-dressed use case at `docs/use-cases/UC-NNN-*.md`, `/verify` includes a traceability check. Every main-scenario step and every extension line maps to at least one test assertion. State the mapping in the summary: `UC-001:3a → test X, UC-001:3b → test Y`. Missing mappings are gaps; tests without use-case traceability are orphan coverage. Per @luminary alistair-cockburn (*Writing Effective Use Cases*).
64
+
65
+ **Extended per #1171 — decomposition + interaction-design + IA-model traceability.** If the change traces to a decomposition at `docs/decompositions/*.md`, `/verify` checks the responsibility assignment stays inside the deep-module boundary named in the decomposition body. If the change traces to an interaction design at `docs/interaction-designs/*.md`, `/verify` checks the state or sequence diagram scope. If the change traces to an IA model at `docs/ia-models/*.md`, `/verify` checks the entity + task-flow scope. Deviations surface to operator with accept-or-reshape choice — matching the adr-deviation-challenge.sh hook pattern (matcher extended per #1171 to fire on OOAD artifact edits). Advisory in V1 per adr-deviation-challenge calibration pattern.
66
+
67
+ ## Details below the fold
68
+
69
+ ### Procedure
70
+
71
+ **Step 1 — Identify change type.**
72
+
73
+ Pick the row that matches what you just changed:
74
+
75
+ | Change type | Minimum verification |
76
+ |---|---|
77
+ | Pure function (scoring, parsing) | Unit test passes for that function |
78
+ | Worker / agent / queue | Boot the worker + process at least one real job |
79
+ | API route | Hit the endpoint, verify response shape |
80
+ | Schema migration | Verify column exists in DB, ORM client regenerated |
81
+ | Refactor (same logic, new files) | Run the code path end-to-end |
82
+ | Middleware / auth | Verify protected routes redirect AND existing routes still work |
83
+ | Scraper / data source | Trigger one real scrape, verify data lands in DB |
84
+ | Config / env var | Verify the service picks up the new value |
85
+ | UI component / page | **MUST gate**: run `/visual-review` (see FAQ above) |
86
+ | Substrate-affecting change | **MUST gate**: cold-adopter-harness-sync (see FAQ above) |
87
+ | Lite SKILL body change | **MUST gate**: `bash .claude/hooks/tests/verify-lite-tier-resolution.test.sh` — every lite composes_with target resolves under the lite filter (Task 1.8) |
88
+ | Docs / config only | N/A — state "docs/config only" |
89
+
90
+ **Step 2 — Run verification.**
91
+
92
+ Execute the row's command. Show the command and output.
93
+
94
+ **Step 3 — Test check.**
95
+
96
+ - New pure function → unit test exists and passes. State the test file.
97
+ - Modified tested code → test suite passes. State the count.
98
+ - No testable logic → state why (docs, config, UI-only).
99
+
100
+ TDD discipline per @luminary kent-beck (*Test-Driven Development: By Example*): red / green / refactor — write the failing test first, make it pass with the minimum code, refactor with tests as safety net. Tests written after the fact confirm what exists, not what matters.
101
+
102
+ **Step 4 — Production build check (MUST gate).**
103
+
104
+ Run the project's production build command. Not just type check. Not just tests. Build commands per stack:
105
+
106
+ - Next.js: `npm run build` (or `pnpm build`, `yarn build`)
107
+ - Node service: `npm run build` or `tsc --noEmit` with prod tsconfig
108
+ - Library: `npm run build`
109
+
110
+ If tests pass but the production build fails, `/verify` FAILS. Do not proceed. Do not write the marker.
111
+
112
+ **Step 5 — Write the marker.**
113
+
114
+ When `/verify` passes end-to-end, write the marker to both locations:
115
+
116
+ ```bash
117
+ BRANCH_SLUG=$(git branch --show-current | tr '/' '-')
118
+ # Desktop marker (fast; survives session; not machine-ephemeral)
119
+ touch "/tmp/claude-verify-${BRANCH_SLUG}"
120
+ # Ephemeral-safe marker (git-tracked; survives sandbox death)
121
+ mkdir -p state/markers/verify
122
+ date -u +%Y-%m-%dT%H:%M:%SZ > "state/markers/verify/${BRANCH_SLUG}.marker"
123
+ git add "state/markers/verify/${BRANCH_SLUG}.marker"
124
+ ```
125
+
126
+ Re-running `/verify` refreshes both markers. Do NOT write the markers if any step failed. Tests passing but build failing = `/verify` FAILED = no marker.
127
+
128
+ The git-tracked marker is authoritative in ephemeral sessions. Desktop sessions use either; both are checked by pre-commit-gate with the 5-minute freshness window.
129
+
130
+ **Step 6 — Write the summary.**
131
+
132
+ ```
133
+ ## Post-Build Verification
134
+ - Change type: [from table]
135
+ - Verification performed: [exact commands + output summary]
136
+ - Tests: [file + count, or "no testable logic"]
137
+ - Build: [passes / fails]
138
+ - Result: [PASS / FAIL — if FAIL, do not commit]
139
+ ```
140
+
141
+ ### Anti-patterns
142
+
143
+ - "Unit tests pass" as sufficient for workers, routes, scrapers
144
+ - Batch-verifying 5+ tasks at once
145
+ - Skipping verification because "it's a small change"
146
+ - Treating compilation as verification
147
+ - Writing the marker when the production build failed
148
+
149
+ ### Refs
150
+
151
+ - `.claude/hooks/pre-commit-gate.sh` — reads the marker; emits `BLOCKED: /verify`
152
+ - `.claude/rules/blocked-items.md` — the resolve-or-defer protocol the block triggers
153
+ - `.claude/rules/cold-adopter-harness-discipline.md` — the 12-pattern matcher for substrate changes
154
+ - `.claude/skills/visual-review/SKILL.md` — the UI gate this skill calls
155
+ - `.claude/luminaries/kent-beck.md` — TDD discipline anchor
156
+ - `.claude/luminaries/alistair-cockburn.md` — use-case traceability anchor
157
+
158
+ ## Output discipline
159
+
160
+ Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.
@@ -0,0 +1,307 @@
1
+ ---
2
+ name: whereami
3
+ description: "Show project state in one glance — phase, active goal, agents in flight, subsystem progress, gate checklist, freshness. Reads docs/whereami.md. Run at session start before /sprint to orient."
4
+ problem: "Project state lives across whereami and iteration goals and chronicles and git. No single-glance view."
5
+ value: "Phase and active goal and agents in flight and gate progress \u2014 one page."
6
+ inputs: [Optional freshness flag]
7
+ outputs: [Current phase and iteration, Active agents, Subsystem status, Gate progress]
8
+ tier: lite
9
+ user_invocable: true
10
+ disable_model_invocation: false
11
+ modes: [default]
12
+ composes_with: [sprint, whats-the-plan]
13
+ ---
14
+
15
+ # /whereami
16
+
17
+ ## What you get
18
+
19
+ A one-glance answer to "where is the project right now?" read from `docs/whereami.md`. You see phase, goal, agents, subsystems, gates, and freshness. Scannable in about 20 seconds. The skill never writes. `/session-end` owns the writes.
20
+
21
+ **Tier gate (bassclef#740 Task 1.8).** `/whats-the-plan` ships at `tier: standard`. Lite adopters skip it. Print skip note. Resolve tier via `lib/tier-check.sh`.
22
+
23
+ ## When to use it
24
+
25
+ Type `/whereami` at session start. Type it when someone drops in cold. Type it when something feels off. Type it before `/whats-the-plan` so the plan cites the active goal.
26
+
27
+ The skill also fires self-triggered at session start. That is the rule at `.claude/rules/whereami-load-bearing.md`.
28
+
29
+ ## When NOT to use
30
+
31
+ Do not use `/whereami` for scope at ticket level. That is `/sprint`. Do not use it for dispatch-path planning. That is `/whats-the-plan`. Do not use it for wiring checks. That is `/substrate-check`. Do not use it to modify state. The skill is read-only.
32
+
33
+ ## FAQ
34
+
35
+ ### How does /whereami differ from /sprint, /whats-the-plan, and /substrate-check?
36
+
37
+ Four skills, four altitudes:
38
+
39
+ | Skill | Altitude | Output |
40
+ |---|---|---|
41
+ | `/whereami` | Project state | Phase + goal + agents + freshness |
42
+ | `/sprint` | Ticket / scope | Open issues + proposed sprint |
43
+ | `/whats-the-plan` | Dispatch path | Ordered skill chain |
44
+ | `/substrate-check` | Wiring | PASS / WARN / FAIL on symlinks + hooks + CLIs |
45
+
46
+ Session-start order: `/whereami`, then `/sprint`, then `/whats-the-plan`, then execute.
47
+
48
+ ### What does /whereami read?
49
+
50
+ <!-- FKGL-EXEMPT: structured accessor spec -->
51
+ Preferred is JSON via the accessor:
52
+
53
+ ```bash
54
+ bash scripts/state.sh get whereami
55
+ # or
56
+ source lib/state.sh && state_whereami_get
57
+ ```
58
+
59
+ Returns parsed JSON. Use this when `docs/whereami.json` exists (spine v0+).
60
+
61
+ Fallback is markdown at `docs/whereami.md`. Body is operator narrative per `.claude/rules/accessor-library-discipline.md`.
62
+
63
+ Schema at `standards/whereami-schema.md`. Spine v0 schema at `standards/state-spine/schemas/whereami.schema.json`. If both sources are missing or the session-start hook surfaced whereami-stale BLOCKED, resolve the BLOCKED first. Do not fabricate state.
64
+ <!-- /FKGL-EXEMPT -->
65
+
66
+ ### What are the 8 schema sections?
67
+
68
+ 1. Project phase.
69
+ 2. Active goal (path, phase within goal, started date, previous goal, next goal).
70
+ 3. Active agents.
71
+ 4. Subsystem phases (table).
72
+ 5. Gate progress (by SDLC phase).
73
+ 6. Risk register pointer.
74
+ 7. Last updated (timestamp + session).
75
+ 8. Configuration pointer.
76
+
77
+ ### How does /whereami compute freshness?
78
+
79
+ | Age of `last_updated` | Signal | Behavior |
80
+ |---|---|---|
81
+ | Less than 3 days | Green | Report normally |
82
+ | 3-7 days | Warn | Report + flag refresh at session end |
83
+ | 7 days or more | BLOCKED | Surface BLOCKED; refuse work until resolved |
84
+ | Missing | BLOCKED | Suggest scaffolding from template |
85
+
86
+ ### What is the auto-update footer?
87
+
88
+ <!-- FKGL-EXEMPT: structured render spec -->
89
+ Reads `.bassclef-source.json` `auto_sync`. Defaults to `false` when the file or field is absent. Renders one:
90
+
91
+ - "Auto-update: ON — your skills, rules, and agents stay current with bassclef at every session start."
92
+ - "Auto-update: OFF — bassclef isn't pulling its own changes into your repo. Turn on any time by saying 'enable auto-sync' or editing `.bassclef-source.json`."
93
+
94
+ This is Layer 1 of the Discovery Cascade per bassclef#939. Adopters see the off state on every orientation and opt in when ready.
95
+ <!-- /FKGL-EXEMPT -->
96
+
97
+ ### What is the installed line?
98
+
99
+ <!-- FKGL-EXEMPT: structured render spec -->
100
+ Reads `.bassclef-source.json` `installed_sha` and `installed_at`. Renders one:
101
+
102
+ - "Installed: abc1234 (3 days behind today) — 2026-06-13T08:30:00Z"
103
+ - "Installed: abc1234 (up to date) — 2026-06-16T20:35:00Z"
104
+ - "Installed: (no sync recorded — the next successful bassclef-sync will record installed_sha + installed_at)"
105
+
106
+ Short SHA is the first 7 chars. Delta in days is `floor((now - installed_at) / 86400)`. Adopters see install version + staleness on every orientation.
107
+ <!-- /FKGL-EXEMPT -->
108
+
109
+ ## Details below the fold
110
+
111
+ <!-- FKGL-EXEMPT: procedure + spec content -->
112
+
113
+ ### Procedure
114
+
115
+ **Step 1 — Read whereami.** `bash scripts/state.sh get whereami` for spine v0. Falls back to `docs/whereami.md` on pre-spine repos. If both fail or a whereami-stale BLOCKED fired, resolve BLOCKED first per `.claude/rules/blocked-items.md`.
116
+
117
+ **Step 2 — Extract the 8 sections** listed above.
118
+
119
+ **Step 3 — Compute freshness** per the FAQ table.
120
+
121
+ **Step 4 — Report.** Scannable form. 20 seconds. Orientation, not a dump.
122
+
123
+ ### Output format
124
+
125
+ ```
126
+ ## Whereami — [repo-name] ([age of last_updated])
127
+
128
+ **Phase**: [Inception | Elaboration | Construction | Transition]
129
+ **Goal**: [goal name OR "between goals"]
130
+ ↳ Phase within goal: [Step N | "—"]
131
+ ↳ Started: [YYYY-MM-DD] | Previous: [goal path]
132
+ **Active agents**: [role on branch OR "None"]
133
+
134
+ **Subsystems**:
135
+ | Subsystem | Phase | Last goal | Notes (first 6 words) |
136
+
137
+ **Gate progress**:
138
+ Inception ✅ COMPLETE (YYYY-MM-DD)
139
+ Elaboration ✅ COMPLETE (YYYY-MM-DD)
140
+ Construction 🔄 IN PROGRESS ([N of M] items checked)
141
+ Transition ⏳ PENDING
142
+
143
+ **Next goal candidate**: [one-line from whereami next-goal field]
144
+
145
+ **Last updated**: [ISO] ([N days ago]) — [session filename]
146
+
147
+ ---
148
+ **Auto-update**: ON | OFF — [one-line state]
149
+
150
+ **Installed**: [short_sha] ([N days behind today] | up to date) — [installed_at ISO date]
151
+ ```
152
+
153
+ ### Freshness block (prepended when applicable)
154
+
155
+ - Warn (3-7 days): `whereami last updated N days ago; refresh at session end (MUST tier).`
156
+ - BLOCKED (7+ days): `whereami-stale; resolve via session-start refresh OR defer explicitly.`
157
+ - BLOCKED (missing): `whereami-missing; resolve by copying templates/whereami-template.md; then fill phase + goal + last_updated.`
158
+
159
+ ### Skipping and aborting
160
+
161
+ - Read-only. Never modify `docs/whereami.md`.
162
+ - If `last_updated` is unparseable: report WARN. Point at the schema.
163
+ - If no active goal: report "between goals". Include the next-goal candidate from the schema.
164
+ - If a schema section is missing: report WARN. Cite the schema. Do not invent.
165
+
166
+ ### Self-check step
167
+
168
+ Before posting the report:
169
+
170
+ 1. Touch `state/markers/turn-prose-surface/status_update.marker`.
171
+ 2. Read the draft against `standards/bassclef-internal-jargon.md` BLOCK terms.
172
+ 3. Rewrite BLOCK matches in plain English.
173
+ 4. Post the response.
174
+
175
+ The Stop hook `.claude/hooks/turn-prose-kiss-check.sh` catches misses.
176
+
177
+ ### Common failure modes
178
+
179
+ - **Missing file.** No `docs/whereami.md` and no `docs/whereami.json`. Surface BLOCKED. Suggest the template. Operator fills phase + goal + last_updated.
180
+ - **Stale entry.** `last_updated` more than 7 days old. Surface BLOCKED. Refuse work until refresh OR explicit deferral.
181
+ - **Schema drift.** A section is missing or malformed. Report WARN. Cite the schema. Do not invent.
182
+ - **Accessor unavailable.** `bash scripts/state.sh get whereami` fails on pre-spine repo. Fall back to markdown.
183
+ - **Auto-update ambiguous.** `.bassclef-source.json` missing. Default to OFF. Render the opt-in path.
184
+
185
+ ### Grace window on old vocabulary
186
+
187
+ Old planning-skill vocabulary still works through 2026-10-31. See `standards/vocabulary-migration.json` for the substitution table and `.claude/rules/we-dont-break-adopters.md` for the discipline. Existing schema field names keep working during the grace window; renamed field names ship in a sibling migration.
188
+
189
+ <!-- /FKGL-EXEMPT -->
190
+
191
+ ## Examples
192
+
193
+ <!-- FKGL-EXEMPT: sample output -->
194
+
195
+ **Green orientation (fresh whereami, active goal):**
196
+
197
+ ```
198
+ ## Whereami — bassclef-upstream (2 hours ago)
199
+
200
+ **Phase**: Construction
201
+ **Goal**: 2026-07-19k — Shape e foundation
202
+ ↳ Phase within goal: WU-3 of 3
203
+ ↳ Started: 2026-07-19 | Previous: 2026-07-19j
204
+ **Active agents**: Builder on feature/2026-07-19k-wu3-whereami-adr-044-refactor
205
+
206
+ **Gate progress**: Construction 🔄 IN PROGRESS (7 of 12 items checked)
207
+
208
+ **Next goal candidate**: #801 Wave 1 expansion (5 remaining Wave 1 skills)
209
+
210
+ **Last updated**: 2026-07-19T22:15+0100 — 2026-07-19h-goal-19j-adr-044-unified-skill-template.md
211
+
212
+ ---
213
+ **Auto-update**: ON — your skills, rules, and agents stay current with bassclef at every session start.
214
+
215
+ **Installed**: 2ceb53b7 (up to date) — 2026-07-19T18:10:00Z
216
+ ```
217
+
218
+ **Warn orientation (5 days since update):**
219
+
220
+ ```
221
+ 🟡 warn — whereami last updated 5 days ago (warn threshold: 3)
222
+ Refresh at session-end (MUST tier).
223
+
224
+ ## Whereami — bassclef-upstream (5 days ago)
225
+ [normal output follows]
226
+ ```
227
+
228
+ **BLOCKED orientation (missing file):**
229
+
230
+ ```
231
+ 🛑🛑🛑 BLOCKED 🛑🛑🛑
232
+ whereami-missing — docs/whereami.md not found.
233
+ Resolve: cp templates/whereami-template.md docs/whereami.md
234
+ (then fill phase + goal + last_updated)
235
+ ```
236
+
237
+ <!-- /FKGL-EXEMPT -->
238
+
239
+ ## Anti-patterns and INSTEAD
240
+
241
+ | Anti-pattern | INSTEAD |
242
+ |---|---|
243
+ | Rebuilding project state from session logs + git log each session | Read `docs/whereami.md` via the accessor |
244
+ | Silencing a stale BLOCKED banner and proceeding | Surface the BLOCKED. Resolve or defer per rule |
245
+ | Filling in plausible state for a missing section | Report WARN. Cite the schema. Do not fabricate |
246
+ | Writing to `docs/whereami.md` from `/whereami` | Read-only. `/session-end` owns writes |
247
+ | Dumping the full whereami content into the response | Scannable 20-second orientation. Reader opens the file for detail |
248
+
249
+ ## Composes with
250
+
251
+ - `/sprint` — reads whereami as primary source. `/whereami` is the lighter surface.
252
+ - `/whats-the-plan` — cites the goal and phase this skill surfaces.
253
+ - `/session-end` — writes whereami at close. This skill only reads.
254
+ - `/substrate-check` — validates schema conformance. This skill reports state.
255
+
256
+ ## Distinct from
257
+
258
+ - `/sprint` — scope proposals at ticket level. Runs after `/whereami`.
259
+ - `/whats-the-plan` — dispatch-path plan. Cites `/whereami` as input.
260
+ - `/substrate-check` — wiring PASS / WARN / FAIL. Different question.
261
+ - `/session-end` — writes whereami. `/whereami` never writes.
262
+
263
+ ## Rules
264
+
265
+ - Orientation in one glance. Scannable, not a dump.
266
+ - Read-only. Never writes. `/session-end` owns writes.
267
+ - Always surface the hook's BLOCKED block. Do not silence stale or missing signals.
268
+ - Composes with `/sprint` and `/whats-the-plan`. Whereami sits upstream.
269
+ - No fabrication. Say so when a section is missing. Do not fill plausible state.
270
+
271
+ ## Test cases
272
+
273
+ <!-- FKGL-EXEMPT: structured test spec -->
274
+ | ID | Prompt | Expected behavior |
275
+ |---|---|---|
276
+ | T1 | `/whereami` on a fresh whereami (< 3 days) | Green orientation with all 8 sections + auto-update + installed |
277
+ | T2 | `/whereami` when `last_updated` is 5 days old | Warn block prepended; normal output follows |
278
+ | T3 | `/whereami` when `docs/whereami.md` is missing | BLOCKED block; scaffold suggestion; refuses work until resolved |
279
+ | T4 | `/whereami` when a schema section is missing | WARN cite of schema; no invented content |
280
+ | T5 | `/whereami` when `.bassclef-source.json` is absent | Auto-update: OFF default; opt-in path rendered |
281
+ <!-- /FKGL-EXEMPT -->
282
+
283
+ ## Sources read
284
+
285
+ - `.claude/rules/whereami-load-bearing.md` — session-start read discipline this skill honors
286
+ - `.claude/rules/blocked-items.md` — BLOCKED protocol on stale or missing whereami
287
+ - `.claude/rules/accessor-library-discipline.md` — accessor or direct read policy
288
+ - `.claude/rules/plain-english-discipline.md` — master rule for output prose
289
+ - `.claude/rules/we-dont-break-adopters.md` — vocabulary grace window
290
+ - `standards/whereami-schema.md` — artifact format
291
+ - `standards/state-spine.md` — accessor architecture
292
+ - `standards/state-spine/schemas/whereami.schema.json` — spine v0 schema
293
+ - `templates/whereami-template.md` — scaffolding source
294
+ - `standards/bassclef-internal-jargon.md` — self-check wordlist
295
+ - `.bassclef-source.json` — `auto_sync` and `installed_sha` source of truth
296
+ - bassclef-upstream#939 — Discovery Cascade Layer 1 (auto-update footer)
297
+ - bassclef-upstream#1037 WU-V4 — `installed_sha` + `installed_at` fields
298
+ - ADR-040 planning-skill vocabulary and lite profile
299
+ - ADR-044 unified SKILL body template
300
+
301
+ ## Why this skill exists
302
+
303
+ Sessions that rebuild project state from session logs plus git log cost 20-40 turns per orientation. They also drift into the wrong active goal. Operators returning after a break need one file, one skill, one 20-second answer. `/whereami` makes that answer invocable. The rule at `.claude/rules/whereami-load-bearing.md` needs a mechanism, not just an obligation. Without `/whereami`, session-start orientation reproduces the archaeology anti-pattern the rule closes.
304
+
305
+ ## Output discipline
306
+
307
+ Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.
@@ -0,0 +1,79 @@
1
+ ---
2
+ tier: lite
3
+ description: Cross-tool agent context for sunj-labs repos.
4
+ ---
5
+ # Agents
6
+
7
+ Cross-tool agent context for sunj-labs repos. This file is readable by
8
+ Claude Code, Cursor, Copilot, and other AI tools — it's the universal
9
+ agent briefing.
10
+
11
+ ## Active agents (10)
12
+
13
+ | Agent | Role | Model | Tools | Authority |
14
+ |-------|------|-------|-------|-----------|
15
+ | Orchestrator | Air traffic control | haiku | Read, Write, Glob, Grep, Bash, WebSearch | Sequencing, routing. Cannot override any role's decisions. |
16
+ | Shaper | Problem framing | opus (Inception) / sonnet | Read, Write, Glob, Grep, WebSearch | Scope, appetite, risk register. Cannot implement. |
17
+ | PM | Commercial viability | sonnet | Read, Write, Glob, Grep, WebSearch | Value sequencing, viability hypotheses. Cannot implement or architect. |
18
+ | Creative Director | Visual language | sonnet | Read, Write, Glob, Grep, WebSearch | Brand, tone, design tokens. Cannot implement. |
19
+ | Architect | System design | sonnet | Read, Write, Glob, Grep, WebSearch | ADRs, C4 diagrams. Cannot implement in Construction. |
20
+ | Designer | User experience | sonnet | Read, Write, Glob, Grep, WebSearch | UX judgment, concept validation. Cannot implement. |
21
+ | Builder | Implementation | sonnet | All | Implements within ADR constraints. Cannot override ADRs. |
22
+ | Reviewer | Code review | haiku | Read, Glob, Grep | Approve/block PRs. Read-only — cannot modify code. |
23
+ | Deployer | Release management | haiku | Read, Write, Glob, Grep, Bash | Ships only. Cannot write application code. |
24
+ | Closer | Administrative | haiku | Read, Write, Glob, Grep, Bash | Documents and closes. Cannot build. |
25
+
26
+ ## Restricted-permission agents (3)
27
+
28
+ These agents have intentionally limited tool access for safety.
29
+
30
+ ### ReadOnly Explorer
31
+
32
+ ```yaml
33
+ name: explorer
34
+ tools: [Read, Glob, Grep]
35
+ purpose: Codebase exploration and research without modification risk
36
+ use_when: "Investigating unfamiliar code, answering questions about architecture, onboarding"
37
+ ```
38
+
39
+ ### Security Auditor
40
+
41
+ ```yaml
42
+ name: security-auditor
43
+ tools: [Read, Glob, Grep]
44
+ purpose: Security review — scan for vulnerabilities, secrets, auth gaps
45
+ use_when: "Pre-launch security review, dependency audit, auth matrix check"
46
+ constraints:
47
+ - Read-only — cannot modify code, only report findings
48
+ - Checks against OWASP top 10, auth matrix, tenant isolation
49
+ - Reports to Architect for ADR-level decisions
50
+ ```
51
+
52
+ ### Docs Writer
53
+
54
+ ```yaml
55
+ name: docs-writer
56
+ tools: [Read, Write, Glob, Grep]
57
+ purpose: Documentation only — chronicles, specs, release notes, READMEs
58
+ use_when: "Session-end artifacts, backfill missing chronicles, write specs from canvases"
59
+ constraints:
60
+ - Cannot run Bash commands
61
+ - Cannot modify source code (only .md files)
62
+ - Cannot create or modify hooks, skills, or rules
63
+ ```
64
+
65
+ ## Agent definitions
66
+
67
+ Full agent definitions with luminaries, checkpointing rules, and
68
+ persona details are in `.claude/agents/*.md`. This file is the summary
69
+ for cross-tool consumption.
70
+
71
+ ## Guardrails
72
+
73
+ All agents are bound by `.claude/rules/guardrails.md`:
74
+ - Never push to main without PR review
75
+ - Never deploy to production without human approval
76
+ - Never expand scope beyond declared appetite
77
+ - Never skip a hard gate
78
+ - Save state before ending
79
+ - Flag ambiguity rather than assuming
@@ -0,0 +1,85 @@
1
+ ---
2
+ tier: lite
3
+ description: What this is. A trimmed version of bassclef for solo adopters running one project. Ships 14 core skills plus 15 rules for session hygiene, safety, plain English, and PR shape. Full bassclef ships 90 skills and 76 rules for cross-project operators.
4
+ ---
5
+ # bassclef-lite
6
+
7
+ **What this is.** A trimmed version of bassclef for solo adopters running one project. Ships 14 core skills plus 15 rules for session hygiene, safety, plain English, and PR shape. Full bassclef ships 90 skills and 76 rules for cross-project operators.
8
+
9
+ **How to think about it.** bassclef-lite gives you enough to run a session cleanly — open, orient, gate, do work, ship, close. As you outgrow it, upgrade to standard bassclef (all substrate, no changes needed on your end; just switch the source pointer).
10
+
11
+ ## Substrate (lite)
12
+
13
+ | Component | Count | Location |
14
+ |---|---|---|
15
+ | Skills | 17 | `.claude/skills/*/SKILL.md` (14 core + 3 supporting: `kiss`, `value-prop`, `luminary`) |
16
+ | Rules | 15 | `.claude/rules/*.md` (auto-loaded via `additionalDirectories`) |
17
+ | Hooks | 14 | `.claude/hooks/*.sh` |
18
+ | Standards | 20 | `standards/*.md` |
19
+ | ADRs | 5 | `architecture/decisions/ADR-*.md` |
20
+ | Agents | 4 | `.claude/agents/*.md` (architect, builder, designer, reviewer) |
21
+ | Luminaries | 4 | `.claude/luminaries/*.md` |
22
+ | Templates | 3 | `templates/*.md` |
23
+
24
+ ## Skills — 14 core
25
+
26
+ Session lifecycle: `/onboard-repo`, `/whereami`, `/sprint`, `/skills`, `/howdoi`, `/session-end`, `/session-log`.
27
+ Gates: `/temperance` (before work), `/verify` (after work), `/diagnose` (when it breaks).
28
+ Do the work: `/longrun` (long sessions), `/state-a-problem`, `/release`, `/promote`.
29
+
30
+ Supporting: `/kiss` (plain English), `/value-prop` (flash/tweet/brief), `/luminary` (design lenses).
31
+
32
+ ## Rules — 15 auto-loaded
33
+
34
+ Session hygiene: `blocked-items`, `sdlc-gates`, `session-artifacts`, `artifact-ingestion`, `whereami-load-bearing`.
35
+ Safety: `destructive-operations`, `state-schema-validation`.
36
+ Composition: `skill-description-clarity`, `skill-composition-declarations`, `pattern-annotation`, `assert-only-after-verify`.
37
+ Plain English: `plain-english-discipline`, `operator-facing-prose`.
38
+ PR shape: `pr-body-shape`, `pr-strategy`.
39
+
40
+ ## SDLC flow
41
+
42
+ ```
43
+ Canvas → Spec → Design → Issue → Branch → PR → CI → Deploy → Observe
44
+ ```
45
+
46
+ Gates run before and after: `/temperance` before a non-trivial change; `/verify` after. `/diagnose` when something breaks.
47
+
48
+ ## Conventions
49
+
50
+ - Conventional commits: `type: description` (feat, fix, docs, refactor, test, ci, chore, security)
51
+ - One branch per issue; squash merge; delete branch after merge
52
+ - PR titles ≤72 chars; PR bodies open with `**Problem (≤500 chars):**`
53
+
54
+ ## Key files
55
+
56
+ - `.claude/rules/sdlc-gates.md` — the gate protocol
57
+ - `.claude/rules/blocked-items.md` — BLOCKED: protocol
58
+ - `.claude/rules/session-artifacts.md` — chronicle + journal obligations at session end
59
+ - `standards/tier-tag-schema.md` — `upstream | lite | standard | ultra`
60
+ - `templates/chronicle-template.md` — session log shape
61
+ - `templates/whereami-template.md` — project state file shape
62
+
63
+ ## What NOT to do
64
+
65
+ - **Don't push to main without PR review**, even solo. Main-protection catches surprise typos.
66
+ - **Don't skip `/temperance` on non-trivial work.** It costs 30 seconds and catches wrong-shape ideas before you code them.
67
+ - **Don't ship code without `/verify`.** The gate reads your change and points you at what you missed.
68
+ - **Don't use bassclef-internal jargon** in operator-facing prose (PR bodies, chronicles, issues). Plain English. Grade 10. Subject-verb-object.
69
+
70
+ ## About prose citations to files not in lite
71
+
72
+ Lite skills and rules sometimes cite rules or ADRs that ship only in standard bassclef. That is by design (per canvas 2026-07-19-bassclef-lite Q1). The rules that matter at runtime load through `additionalDirectories` — the sync template writes that setting into your `.claude/settings.json`. Governance rules fire when their trigger conditions match. You do not need the file on disk.
73
+
74
+ Curious lite adopters can read the full standard-tier substrate at github.com/sunj-labs/bassclef. Prose citations point there.
75
+
76
+ ## Upgrading to standard bassclef
77
+
78
+ When your work spans multiple projects, or you need adopter-QA discipline, or you hit the limits of 14 skills — flip `.bassclef-source.json` to point at the standard bassclef repo. All 90 skills, 76 rules, 61 hooks land at next session-start. No adopter action beyond the pointer flip.
79
+
80
+ ## See also
81
+
82
+ - `docs/curation/2026-07-17b-lite-curation-notes.md` — how these 14 skills were picked (Voyage embeddings + luminary lens)
83
+ - `docs/curation/2026-07-17b-lite-candidate-pool.md` — the 25-skill cosine shortlist that fed the lens pass
84
+ - ADR-040 — planning skill vocabulary + lite profile (source decision)
85
+ - ADR-041 — adopter-count-based grace-window (when full compat discipline returns)
@@ -0,0 +1,28 @@
1
+ ---
2
+ tier: lite
3
+ description: "We're committed to a welcoming, respectful community for everyone contributing to or using bassclef."
4
+ ---
5
+ # Code of Conduct
6
+
7
+ We're committed to a welcoming, respectful community for everyone contributing to or using bassclef.
8
+
9
+ ## Expected behavior
10
+
11
+ - Treat others with respect and good faith.
12
+ - Engage constructively with feedback and disagreement.
13
+ - Credit sources for content you contribute.
14
+
15
+ ## Unacceptable behavior
16
+
17
+ - Harassment, personal attacks, or discriminatory language.
18
+ - Sharing others' private information without consent.
19
+ - Threats or encouragement of violence.
20
+ - Impersonating others or evading enforcement actions.
21
+
22
+ ## Reporting
23
+
24
+ To report a violation, email conduct@bassclef.dev. Reports are handled privately.
25
+
26
+ ## Scope
27
+
28
+ This applies to all project spaces — issues, pull requests, discussions, and any official project communication.