@thebassclef/lite 1.0.3 → 1.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.
- package/dist/cli.cjs +92 -6
- package/dist/cli.js +92 -6
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lite/.claude/agents/architect.md +70 -0
- package/dist/lite/.claude/agents/builder.md +114 -0
- package/dist/lite/.claude/agents/designer.md +156 -0
- package/dist/lite/.claude/agents/reviewer.md +88 -0
- package/dist/lite/.claude/hooks/bassclef-sync.sh +85 -27
- package/dist/lite/.claude/hooks/longrun-prep-compounding-axis-check.sh +492 -0
- package/dist/lite/.claude/hooks/longrun-prep-render-check.sh +236 -0
- package/dist/lite/.claude/hooks/persona-name-scrub-check.sh +105 -0
- package/dist/lite/.claude/hooks/skill-step-list-check.sh +171 -0
- package/dist/lite/.claude/luminaries/alan-cooper.md +170 -0
- package/dist/lite/.claude/luminaries/alistair-cockburn.md +140 -0
- package/dist/lite/.claude/luminaries/amazon-pr-faq.md +34 -0
- package/dist/lite/.claude/luminaries/andreas-zeller.md +74 -0
- package/dist/lite/.claude/luminaries/ash-maurya.md +121 -0
- package/dist/lite/.claude/luminaries/bill-buxton.md +210 -0
- package/dist/lite/.claude/luminaries/charles-sanders-peirce.md +150 -0
- package/dist/lite/.claude/luminaries/david-ogilvy.md +192 -0
- package/dist/lite/.claude/luminaries/don-norman.md +173 -0
- package/dist/lite/.claude/luminaries/edward-tufte.md +179 -0
- package/dist/lite/.claude/luminaries/eric-evans.md +160 -0
- package/dist/lite/.claude/luminaries/frederick-brooks.md +50 -0
- package/dist/lite/.claude/luminaries/gang-of-four.md +157 -0
- package/dist/lite/.claude/luminaries/glenford-myers.md +230 -0
- package/dist/lite/.claude/luminaries/hunt-thomas.md +115 -0
- package/dist/lite/.claude/luminaries/hyrum-wright.md +94 -0
- package/dist/lite/.claude/luminaries/jason-fried-dhh.md +46 -0
- package/dist/lite/.claude/luminaries/jesse-james-garrett.md +154 -0
- package/dist/lite/.claude/luminaries/john-ousterhout.md +94 -0
- package/dist/lite/.claude/luminaries/karl-popper.md +132 -0
- package/dist/lite/.claude/luminaries/kent-beck.md +168 -0
- package/dist/lite/.claude/luminaries/linus-torvalds.md +218 -0
- package/dist/lite/.claude/luminaries/martin-fowler.md +164 -0
- package/dist/lite/.claude/luminaries/michael-feathers.md +125 -0
- package/dist/lite/.claude/luminaries/michael-nygard.md +118 -0
- package/dist/lite/.claude/luminaries/robert-c-martin.md +164 -0
- package/dist/lite/.claude/luminaries/saltzer-schroeder.md +194 -0
- package/dist/lite/.claude/luminaries/sophia-prater.md +193 -0
- package/dist/lite/.claude/luminaries/stephen-toulmin.md +131 -0
- package/dist/lite/.claude/luminaries/tony-hoare.md +170 -0
- package/dist/lite/.claude/luminaries/vaughn-vernon.md +50 -0
- package/dist/lite/.claude/luminaries/w-edwards-deming.md +158 -0
- package/dist/lite/.claude/rules/accessor-library-discipline.md +110 -0
- package/dist/lite/.claude/rules/adr-discipline.md +96 -0
- package/dist/lite/.claude/rules/api-conventions.md +115 -0
- package/dist/lite/.claude/rules/artifact-ingestion.md +137 -0
- package/dist/lite/.claude/rules/assert-only-after-verify.md +111 -0
- package/dist/lite/.claude/rules/blocked-items.md +139 -0
- package/dist/lite/.claude/rules/bootstrap-pair-discipline.md +106 -0
- package/dist/lite/.claude/rules/branching.md +28 -0
- package/dist/lite/.claude/rules/cold-adopter-harness-discipline.md +93 -0
- package/dist/lite/.claude/rules/commit-conventions.md +22 -0
- package/dist/lite/.claude/rules/compounding-axis-fresh-analysis.md +173 -0
- package/dist/lite/.claude/rules/compounding-sequence-fresh-analysis.md +173 -0
- package/dist/lite/.claude/rules/context-engineering.md +155 -0
- package/dist/lite/.claude/rules/context-management.md +85 -0
- package/dist/lite/.claude/rules/defensive-bash.md +52 -0
- package/dist/lite/.claude/rules/deferred-actions.md +233 -0
- package/dist/lite/.claude/rules/destructive-operations.md +69 -0
- package/dist/lite/.claude/rules/diagnosis.md +38 -0
- package/dist/lite/.claude/rules/github-issue-flash-tweet.md +114 -0
- package/dist/lite/.claude/rules/guardrails.md +73 -0
- package/dist/lite/.claude/rules/hook-wire-on-author.md +77 -0
- package/dist/lite/.claude/rules/identifier-leak-prevention.md +73 -0
- package/dist/lite/.claude/rules/iteration-bet-brief-completeness.md +43 -0
- package/dist/lite/.claude/rules/lite-manifest-schema-change-discipline.md +79 -0
- package/dist/lite/.claude/rules/longrun-prep-plan-doc-compression.md +77 -0
- package/dist/lite/.claude/rules/loop-discipline.md +71 -0
- package/dist/lite/.claude/rules/manual-prod-approval.md +100 -0
- package/dist/lite/.claude/rules/marker-enrichment-discipline.md +72 -0
- package/dist/lite/.claude/rules/mobile-ephemeral-session.md +109 -0
- package/dist/lite/.claude/rules/new-dependency-check.md +44 -0
- package/dist/lite/.claude/rules/oo-ad-entry-point.md +95 -0
- package/dist/lite/.claude/rules/operator-facing-prose.md +177 -0
- package/dist/lite/.claude/rules/option-label-discipline.md +82 -0
- package/dist/lite/.claude/rules/pattern-annotation.md +83 -0
- package/dist/lite/.claude/rules/persona-name-leak-scrub.md +90 -0
- package/dist/lite/.claude/rules/plain-english-discipline.md +132 -0
- package/dist/lite/.claude/rules/plan-enumeration-needs-value-props.md +177 -0
- package/dist/lite/.claude/rules/pr-body-shape.md +195 -0
- package/dist/lite/.claude/rules/pr-strategy.md +142 -0
- package/dist/lite/.claude/rules/pr-title-shape.md +90 -0
- package/dist/lite/.claude/rules/prototype-workflow.md +53 -0
- package/dist/lite/.claude/rules/reserved-skill-names.md +103 -0
- package/dist/lite/.claude/rules/schema-management.md +42 -0
- package/dist/lite/.claude/rules/sdlc-gates.md +149 -0
- package/dist/lite/.claude/rules/security.md +37 -0
- package/dist/lite/.claude/rules/session-artifacts.md +236 -0
- package/dist/lite/.claude/rules/skill-composition-declarations.md +105 -0
- package/dist/lite/.claude/rules/skill-description-clarity.md +196 -0
- package/dist/lite/.claude/rules/skill-procedure-step-list.md +119 -0
- package/dist/lite/.claude/rules/sprint-prep-preset-picker.md +76 -0
- package/dist/lite/.claude/rules/state-schema-validation.md +156 -0
- package/dist/lite/.claude/rules/stuck-signal-diagnostic.md +111 -0
- package/dist/lite/.claude/rules/substrate-config-schema.md +85 -0
- package/dist/lite/.claude/rules/test-list-discipline.md +129 -0
- package/dist/lite/.claude/rules/test-sufficiency.md +186 -0
- package/dist/lite/.claude/rules/testing-tier-config.md +125 -0
- package/dist/lite/.claude/rules/testing.md +38 -0
- package/dist/lite/.claude/rules/turn-estimate-grounding.md +82 -0
- package/dist/lite/.claude/rules/visual-hierarchy.md +427 -0
- package/dist/lite/.claude/rules/we-dont-break-adopters.md +103 -0
- package/dist/lite/.claude/rules/whereami-load-bearing.md +184 -0
- package/dist/lite/.claude/rules/writing-craft-discipline.md +72 -0
- package/dist/lite/.claude/rules/wu-sequencing-compounds.md +119 -0
- package/dist/lite/.claude/skills/build/SKILL.md +640 -0
- package/dist/lite/.claude/skills/chronicle/SKILL.md +55 -0
- package/dist/lite/.claude/skills/clean-artifacts/SKILL.md +249 -0
- package/dist/lite/.claude/skills/decompose/SKILL.md +280 -0
- package/dist/lite/.claude/skills/diagnose/SKILL.md +297 -0
- package/dist/lite/.claude/skills/feynman/SKILL.md +90 -0
- package/dist/lite/.claude/skills/howdoi/SKILL.md +105 -0
- package/dist/lite/.claude/skills/ia-model/SKILL.md +108 -0
- package/dist/lite/.claude/skills/interaction-design/SKILL.md +112 -0
- package/dist/lite/.claude/skills/interpret-input/SKILL.md +180 -0
- package/dist/lite/.claude/skills/journal/SKILL.md +209 -0
- package/dist/lite/.claude/skills/kiss/SKILL.md +449 -0
- package/dist/lite/.claude/skills/launch/SKILL.md +915 -0
- package/dist/lite/.claude/skills/lean-canvas/SKILL.md +332 -0
- package/dist/lite/.claude/skills/longrun/SKILL.md +512 -0
- package/dist/lite/.claude/skills/luminary/SKILL.md +481 -0
- package/dist/lite/.claude/skills/ogilvy-writing-audit/SKILL.md +177 -0
- package/dist/lite/.claude/skills/onboard-repo/SKILL.md +1640 -0
- package/dist/lite/.claude/skills/pattern-review/SKILL.md +99 -0
- package/dist/lite/.claude/skills/personas/SKILL.md +207 -0
- package/dist/lite/.claude/skills/promote/SKILL.md +283 -0
- package/dist/lite/.claude/skills/requirement/SKILL.md +98 -0
- package/dist/lite/.claude/skills/retro/SKILL.md +117 -0
- package/dist/lite/.claude/skills/riff/SKILL.md +114 -0
- package/dist/lite/.claude/skills/roadmap-reconcile/SKILL.md +163 -0
- package/dist/lite/.claude/skills/session-end/SKILL.md +309 -0
- package/dist/lite/.claude/skills/session-log/SKILL.md +299 -0
- package/dist/lite/.claude/skills/skills/SKILL.md +228 -0
- package/dist/lite/.claude/skills/spec/SKILL.md +105 -0
- package/dist/lite/.claude/skills/sprint/SKILL.md +418 -0
- package/dist/lite/.claude/skills/stage/SKILL.md +384 -0
- package/dist/lite/.claude/skills/state-a-problem/SKILL.md +185 -0
- package/dist/lite/.claude/skills/temperance/SKILL.md +108 -0
- package/dist/lite/.claude/skills/use-case/SKILL.md +417 -0
- package/dist/lite/.claude/skills/user-stories/SKILL.md +268 -0
- package/dist/lite/.claude/skills/value-prop/SKILL.md +251 -0
- package/dist/lite/.claude/skills/verify/SKILL.md +160 -0
- package/dist/lite/.claude/skills/visual-review/SKILL.md +503 -0
- package/dist/lite/.claude/skills/whats-the-plan/SKILL.md +202 -0
- package/dist/lite/.claude/skills/whereami/SKILL.md +307 -0
- package/dist/lite/AGENTS.md +79 -0
- package/dist/lite/CLAUDE-lite.md +85 -0
- package/dist/lite/CODE_OF_CONDUCT.md +28 -0
- package/dist/lite/CONTRIBUTING.md +177 -0
- package/dist/lite/README.md +173 -0
- package/dist/lite/SECURITY.md +19 -0
- package/dist/lite/architecture/decisions/ADR-029-release-pipeline.md +79 -0
- package/dist/lite/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +139 -0
- package/dist/lite/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +192 -0
- package/dist/lite/architecture/decisions/ADR-039-release-tagging-scheme.md +145 -0
- package/dist/lite/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +155 -0
- package/dist/lite/architecture/decisions/ADR-044-unified-skill-body-template.md +162 -0
- package/dist/lite/lib/clean-artifacts-sweep.sh +112 -0
- package/dist/lite/lib/code-comment-discipline.sh +144 -0
- package/dist/lite/lib/composer-preflight.sh +459 -0
- package/dist/lite/lib/deferred-actions.sh +146 -0
- package/dist/lite/lib/hook-header-parser.sh +61 -0
- package/dist/lite/lib/hook-heartbeat.sh +152 -0
- package/dist/lite/lib/hook-inject.sh +255 -0
- package/dist/lite/lib/hook-installer.sh +195 -0
- package/dist/lite/lib/luminary-pick.sh +96 -0
- package/dist/lite/lib/output-discipline.sh +143 -0
- package/dist/lite/lib/prose-scan-boundary.sh +171 -0
- package/dist/lite/lib/rewrite-check.sh +214 -0
- package/dist/lite/lib/session-rescue.sh +151 -0
- package/dist/lite/lib/source-graph-walker.sh +277 -0
- package/dist/lite/lib/state.sh +1372 -0
- package/dist/lite/lib/telemetry.sh +205 -0
- package/dist/lite/lib/tier-check.sh +187 -0
- package/dist/lite/lib/tier-dependency-audit.sh +1088 -0
- package/dist/lite/presence/install/bassclef-hook-connect.sh +178 -0
- package/dist/lite/presence/install/bassclef-sync.dispatcher.template.sh +841 -0
- package/dist/lite/presence/install/bassclef-sync.template.sh +2278 -0
- package/dist/lite/presence/install/schedule-auto-save.cron.sh +88 -0
- package/dist/lite/presence/install/schedule-auto-save.taskscheduler.md +122 -0
- package/dist/lite/scripts/aggregate-telemetry.sh +217 -0
- package/dist/lite/scripts/analyze-tier-dependencies.sh +239 -0
- package/dist/lite/scripts/generate-lite-manifest.sh +505 -0
- package/dist/lite/scripts/generate-tier-manifest.sh +28 -0
- package/dist/lite/scripts/intent-drift-check.sh +456 -0
- package/dist/lite/scripts/lite-manifest-drift-check.sh +146 -0
- package/dist/lite/scripts/render-lite-manifest-doc.sh +150 -0
- package/dist/lite/standards/adr-template.md +86 -0
- package/dist/lite/standards/api-conventions/nextjs.md +84 -0
- package/dist/lite/standards/artifact-composition.md +209 -0
- package/dist/lite/standards/bash-hook-safety.md +246 -0
- package/dist/lite/standards/bassclef-configs-schema.md +232 -0
- package/dist/lite/standards/bassclef-evolution.md +143 -0
- package/dist/lite/standards/bassclef-internal-jargon.md +244 -0
- package/dist/lite/standards/bassclef-managed-sentinel.md +96 -0
- package/dist/lite/standards/bassclef-source-config.md +228 -0
- package/dist/lite/standards/branch-stacking.md +408 -0
- package/dist/lite/standards/code-safety-principles.md +176 -0
- package/dist/lite/standards/composer-prerequisites.md +155 -0
- package/dist/lite/standards/deferred-actions-schema.md +204 -0
- package/dist/lite/standards/dependency-discipline/cargo.md +39 -0
- package/dist/lite/standards/dependency-discipline/gem.md +43 -0
- package/dist/lite/standards/dependency-discipline/go-mod.md +41 -0
- package/dist/lite/standards/dependency-discipline/npm.md +42 -0
- package/dist/lite/standards/dependency-discipline/pip.md +42 -0
- package/dist/lite/standards/deployment-topology/ec2-tailscale.md +225 -0
- package/dist/lite/standards/deployment-topology.md +69 -0
- package/dist/lite/standards/docs-sync-allowlist.md +76 -0
- package/dist/lite/standards/domain-and-dns.md +145 -0
- package/dist/lite/standards/frontend-stack.md +67 -0
- package/dist/lite/standards/frontmatter-schema.md +154 -0
- package/dist/lite/standards/graceful-exit.md +227 -0
- package/dist/lite/standards/hook-idempotency.md +102 -0
- package/dist/lite/standards/hook-injection-discipline.md +202 -0
- package/dist/lite/standards/hook-install-class.md +215 -0
- package/dist/lite/standards/input-handler-interface.md +152 -0
- package/dist/lite/standards/lite-manifest-schema-changes.md +180 -0
- package/dist/lite/standards/lite-manifest.json +2797 -0
- package/dist/lite/standards/luminary-matching.md +105 -0
- package/dist/lite/standards/luminary-problem-patterns.md +481 -0
- package/dist/lite/standards/migration-discipline/active-record.md +50 -0
- package/dist/lite/standards/migration-discipline/alembic.md +43 -0
- package/dist/lite/standards/migration-discipline/gorm.md +50 -0
- package/dist/lite/standards/migration-discipline/prisma.md +53 -0
- package/dist/lite/standards/migration-discipline/sqlalchemy.md +51 -0
- package/dist/lite/standards/mobile-ephemeral-session.md +167 -0
- package/dist/lite/standards/model-routing-discipline.md +160 -0
- package/dist/lite/standards/ogilvy-writing-rules.md +225 -0
- package/dist/lite/standards/opener-discipline.md +96 -0
- package/dist/lite/standards/operator-facing-prose-discipline.md +201 -0
- package/dist/lite/standards/persona-schema.md +229 -0
- package/dist/lite/standards/pluggable-luminaries.md +323 -0
- package/dist/lite/standards/pr-body-discipline.md +115 -0
- package/dist/lite/standards/preview-state-schema.md +189 -0
- package/dist/lite/standards/project-directory-layout.md +276 -0
- package/dist/lite/standards/release-tagging.md +137 -0
- package/dist/lite/standards/reserved-skill-names.md +120 -0
- package/dist/lite/standards/scannable-multi-option-output.md +265 -0
- package/dist/lite/standards/sdlc-compliance.md +286 -0
- package/dist/lite/standards/sdlc-gates/typescript.md +57 -0
- package/dist/lite/standards/secrets-lifecycle.md +210 -0
- package/dist/lite/standards/security-scanner-adapter.md +145 -0
- package/dist/lite/standards/session-board.md +256 -0
- package/dist/lite/standards/skill-output-discipline.md +121 -0
- package/dist/lite/standards/state-spine-contract.md +255 -0
- package/dist/lite/standards/state-spine.md +511 -0
- package/dist/lite/standards/steering-hints/kiss-words.md +11 -0
- package/dist/lite/standards/substrate-config-schema.md +267 -0
- package/dist/lite/standards/tech-stack-config.md +109 -0
- package/dist/lite/standards/tier-dependency-analysis.md +167 -0
- package/dist/lite/standards/tier-runtime-deps/lite.md +57 -0
- package/dist/lite/standards/tier-tag-schema.md +155 -0
- package/dist/lite/standards/two-layer-config.md +99 -0
- package/dist/lite/standards/use-case-format.md +292 -0
- package/dist/lite/standards/user-story-invest.md +268 -0
- package/dist/lite/standards/velocity-and-appetite.md +229 -0
- package/dist/lite/standards/voice-input-pattern.md +119 -0
- package/dist/lite/standards/whereami-schema.md +301 -0
- package/dist/lite/standards/worktree-management.md +211 -0
- package/dist/lite/standards/writing-guide.md +213 -0
- package/dist/lite/templates/chronicle-template.md +75 -0
- package/dist/lite/templates/deferred-action-template.md +45 -0
- package/dist/lite/templates/memory-proposal-template.md +77 -0
- package/dist/lite/templates/persona-template.md +200 -0
- package/dist/lite/templates/pr-faq.md +45 -0
- package/dist/lite/templates/secret-rotation-template.md +162 -0
- package/dist/lite/templates/spec-template.md +131 -0
- package/dist/lite/templates/use-case-template.md +194 -0
- package/dist/lite/templates/user-story-template.md +107 -0
- package/dist/lite/templates/whereami-template.md +101 -0
- package/package.json +1 -1
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: whats-the-plan
|
|
4
|
+
description: "Declare the chain of skills you intend to run for the current task or next stretch of work. Invokable at any natural response point. Composes with /temperance (scope) and /sprint (ticket-level) \u2014 dispatch-path level."
|
|
5
|
+
problem: "Multi-skill chains dispatch without declaring the plan. Operator can't audit mid-flight."
|
|
6
|
+
value: "Declares the chain of skills you intend to run. Invokable before you start."
|
|
7
|
+
inputs: [Current task or scope description]
|
|
8
|
+
outputs: [Ordered skill chain, Rationale per step, Alternative chains]
|
|
9
|
+
user_invocable: true
|
|
10
|
+
disable_model_invocation: false
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# What's the Plan
|
|
14
|
+
|
|
15
|
+
Declare the sequence of skills, tool calls, and artifacts you intend
|
|
16
|
+
to produce for the current task. Stated **before** execution, not
|
|
17
|
+
retrospectively. Re-declared when the plan changes materially.
|
|
18
|
+
|
|
19
|
+
## When to Invoke
|
|
20
|
+
|
|
21
|
+
- **Operator asks**: "what's the plan?", "how are you going to tackle this?", "show me the chain"
|
|
22
|
+
- **Operator types**: `/whats-the-plan`
|
|
23
|
+
- **Self-invoke** (before a non-trivial chain): when the next stretch of
|
|
24
|
+
work involves ≥3 skills OR touches production code OR spans ≥1 hour.
|
|
25
|
+
This is the analogue of `/temperance` firing on the first edit — but
|
|
26
|
+
for sequencing, not scope
|
|
27
|
+
- **Plan change mid-task**: when a skill output forces a swap (new
|
|
28
|
+
interface surfaces, test fails, operator redirects) — re-declare
|
|
29
|
+
with a `was → now` delta
|
|
30
|
+
|
|
31
|
+
## What this skill is NOT
|
|
32
|
+
|
|
33
|
+
| Skill | Operates at | Time | Output |
|
|
34
|
+
|-------|-------------|------|--------|
|
|
35
|
+
| `/sprint` | Ticket/scope level | Session start | Issues + time budget + iteration name |
|
|
36
|
+
| `/temperance` | Approach/scope | Before edit | Right-thing + right-way questions |
|
|
37
|
+
| `/whats-the-plan` | **Dispatch path** | **Any natural response point** | **Ordered skill chain + swap-points** |
|
|
38
|
+
| `/chronicle` | Narrative | Session end | Retrospective log |
|
|
39
|
+
|
|
40
|
+
The four compose. A typical session:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
/sprint → "next: finish iteration X, ~60 turns"
|
|
44
|
+
/temperance → "building Y; right thing because Z; simplest path is W"
|
|
45
|
+
/whats-the-plan → "chain: /decompose → build → /verify → commit"
|
|
46
|
+
[execute]
|
|
47
|
+
/chronicle → "what happened, decisions, open threads"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Procedure
|
|
51
|
+
|
|
52
|
+
### 1. Read inputs
|
|
53
|
+
|
|
54
|
+
Before declaring, know:
|
|
55
|
+
|
|
56
|
+
- **Current task** — the thing operator just asked for, or the next
|
|
57
|
+
scope in the active iteration goal
|
|
58
|
+
- **Active iteration goal** — `docs/iteration-bets/` (latest) — governs
|
|
59
|
+
what's in-scope and what stop-points exist
|
|
60
|
+
- **Applicable gates** — any of: `/temperance`, `/diagnose`, `/verify`,
|
|
61
|
+
`/visual-review`, `/decompose` (per `sdlc-gates.md` and
|
|
62
|
+
`oo-ad-entry-point.md`)
|
|
63
|
+
- **Relevant rules** — `artifact-ingestion.md` dictates sources-read
|
|
64
|
+
block; `design-direction.md` dictates approval-respect; other rules
|
|
65
|
+
may insert steps (e.g., `prototype-workflow.md` inserts render +
|
|
66
|
+
confirm before commit for prototype edits)
|
|
67
|
+
|
|
68
|
+
### 2. Enumerate the chain
|
|
69
|
+
|
|
70
|
+
List skills, tool calls, and artifact writes in execution order. Use
|
|
71
|
+
`→` between steps. Group by phase if the chain crosses phases.
|
|
72
|
+
|
|
73
|
+
### 3. Name swap-points
|
|
74
|
+
|
|
75
|
+
A swap-point is a conditional fork: "if skill X produces finding Y,
|
|
76
|
+
insert skill Z before the next step." Swap-points are where the plan
|
|
77
|
+
may branch based on outputs you don't have yet.
|
|
78
|
+
|
|
79
|
+
List the top 2–3 swap-points the chain is sensitive to. More than 3
|
|
80
|
+
signals the chain is under-specified and needs shaping first.
|
|
81
|
+
|
|
82
|
+
### 4. State stop conditions
|
|
83
|
+
|
|
84
|
+
Where does this chain end? Options:
|
|
85
|
+
- **Operator review point** — "stop before PR open"
|
|
86
|
+
- **Gate** — "stop at /verify output; commit blocks on green"
|
|
87
|
+
- **Natural boundary** — "one WS complete; next WS is separate chain"
|
|
88
|
+
- **Time budget limit** — "stop at 20 turns; re-shape if incomplete"
|
|
89
|
+
|
|
90
|
+
### 5. State what's NOT in this chain
|
|
91
|
+
|
|
92
|
+
Adjacent work you're deliberately excluding. This is the sequencing
|
|
93
|
+
analogue of `/temperance`'s "what you're NOT doing" question.
|
|
94
|
+
|
|
95
|
+
## Output format
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
## Plan (YYYY-MM-DD HH:MM UTC)
|
|
99
|
+
|
|
100
|
+
**Task**: [one-line description]
|
|
101
|
+
**Iteration**: [goal name, or "none — ad-hoc"]
|
|
102
|
+
|
|
103
|
+
**Chain**:
|
|
104
|
+
1. /temperance — gate scope + approach
|
|
105
|
+
2. /decompose — identify interfaces (if Construction)
|
|
106
|
+
3. [build step] — edit [paths]
|
|
107
|
+
4. /verify — match change type to verification
|
|
108
|
+
5. commit — conventional message
|
|
109
|
+
|
|
110
|
+
**Swap-points**:
|
|
111
|
+
- If /decompose surfaces new cross-cutting concern → insert /pattern-review before build
|
|
112
|
+
- If /verify fails visual → insert /visual-review before commit
|
|
113
|
+
- If operator redirects scope → re-run /whats-the-plan with delta
|
|
114
|
+
|
|
115
|
+
**Stops at**: [operator review point / gate / natural boundary]
|
|
116
|
+
**Appetite**: ~N turns, ~M min
|
|
117
|
+
**Not in this chain**: [adjacent work excluded]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Re-declare format
|
|
121
|
+
|
|
122
|
+
When the plan changes materially mid-task, emit a delta (not a full
|
|
123
|
+
re-print). Material change = new skill inserted, skill removed, or
|
|
124
|
+
stop-point moved. Trivial reordering within the declared chain does
|
|
125
|
+
not trigger re-declare.
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
## Plan update (YYYY-MM-DD HH:MM UTC)
|
|
129
|
+
|
|
130
|
+
**Was**: /temperance → /decompose → build → /verify → commit
|
|
131
|
+
**Now**: /temperance → /decompose → /pattern-review → build → /verify → /visual-review → commit
|
|
132
|
+
|
|
133
|
+
**Why**: /decompose surfaced [specific interface] — triggers
|
|
134
|
+
/pattern-review swap-point. /verify scope now includes UI, pulling
|
|
135
|
+
/visual-review in per post-build gate.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Rules
|
|
139
|
+
|
|
140
|
+
- **Declare before execute**, not after. A plan declared after the
|
|
141
|
+
chain ran is a log entry, not a plan.
|
|
142
|
+
- **One plan per coherent task**, not one per turn. Multi-turn
|
|
143
|
+
execution under a single declared plan is the common case.
|
|
144
|
+
- **Re-declare on material change only**, not on every adjustment.
|
|
145
|
+
Chain chatter reduces the signal.
|
|
146
|
+
- **Plan must reference sources** (per `artifact-ingestion.md`) if the
|
|
147
|
+
chain involves producing a canvas, spec, ADR, or prototype. The
|
|
148
|
+
plan itself is a lightweight produce-ahead-of-execution artifact.
|
|
149
|
+
- **Skill chain steps presented to operator MUST follow
|
|
150
|
+
`.claude/rules/plan-enumeration-needs-value-props.md`** — each step
|
|
151
|
+
in the chain carries a tweet (claim + why-it-matters), not a bare
|
|
152
|
+
skill name. Bare "/temperance → /diagnose → /verify" is not a plan;
|
|
153
|
+
each step needs to say what it buys.
|
|
154
|
+
- **Do not declare a plan you know you won't follow**. If the chain is
|
|
155
|
+
genuinely uncertain, say so: "Plan unclear; running /temperance +
|
|
156
|
+
/diagnose first to shape." That is itself a valid plan.
|
|
157
|
+
|
|
158
|
+
## Chronicle integration
|
|
159
|
+
|
|
160
|
+
When the session chronicle is written, the main-task plan declaration
|
|
161
|
+
SHOULD be linked or quoted. Plan → execution → reference-back is the
|
|
162
|
+
loop that makes plan declaration load-bearing rather than theatrical.
|
|
163
|
+
|
|
164
|
+
If the plan changed during execution, chronicle notes the delta
|
|
165
|
+
(which swap-points fired, which didn't).
|
|
166
|
+
|
|
167
|
+
## Operator-facing behavior
|
|
168
|
+
|
|
169
|
+
When operator types `/whats-the-plan`:
|
|
170
|
+
- If a plan was declared recently (same task, no material change):
|
|
171
|
+
re-display the current plan
|
|
172
|
+
- If no plan exists or task has shifted: run the procedure and declare
|
|
173
|
+
- If operator asks "what's the plan?" in conversation: same procedure,
|
|
174
|
+
slight framing adjustment — phrase as response, not bassclef output
|
|
175
|
+
block, but include the chain + swap-points + stops-at
|
|
176
|
+
|
|
177
|
+
## Relationship to other rules
|
|
178
|
+
|
|
179
|
+
- `sdlc-gates.md` — declared plan must include gate skills where
|
|
180
|
+
applicable; hook-enforced gates are not optional plan steps
|
|
181
|
+
- `artifact-ingestion.md` — plans that will produce generative output
|
|
182
|
+
must name sources the chain will read
|
|
183
|
+
- `design-direction.md` — plan changes after operator approval require
|
|
184
|
+
operator reconciliation, not agent-unilateral re-planning
|
|
185
|
+
- `oo-ad-entry-point.md` — Construction chains that edit `src/` must
|
|
186
|
+
include `/decompose` or explicit trivial-work deferral
|
|
187
|
+
- `iteration-goal-brief-completeness.md` — plans delegated to subagents
|
|
188
|
+
are briefs; this skill outputs the brief
|
|
189
|
+
|
|
190
|
+
## Enforcement
|
|
191
|
+
|
|
192
|
+
V1: methodology-level. Operator invokes or Claude self-invokes based
|
|
193
|
+
on the triggers above.
|
|
194
|
+
|
|
195
|
+
V2 (future): rule `plan-declaration-required.md` + hook that fires
|
|
196
|
+
BLOCKED when a ≥3-skill chain executes without a preceding
|
|
197
|
+
`/whats-the-plan` output in session. Not in v1 scope — shipping the
|
|
198
|
+
skill first lets us learn where auto-fire helps vs. spams.
|
|
199
|
+
|
|
200
|
+
## Output discipline
|
|
201
|
+
|
|
202
|
+
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 \u2014 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 files + 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)
|