@thebassclef/lite 0.1.3 → 1.0.1

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 (293) hide show
  1. package/dist/cli.cjs +431 -135
  2. package/dist/cli.js +433 -137
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/lite/.bassclef-source.json +10 -0
  7. package/{substrate → dist/lite}/.claude/hooks/artifact-ingestion-gate.sh +0 -0
  8. package/{substrate → dist/lite}/.claude/hooks/assert-verify-steering.sh +0 -0
  9. package/{substrate → dist/lite}/.claude/hooks/bassclef-source-config-validate.sh +0 -0
  10. package/{substrate → dist/lite}/.claude/hooks/bassclef-sync.sh +0 -0
  11. package/{substrate → dist/lite}/.claude/hooks/compound-noun-scrub.sh +0 -0
  12. package/{substrate → dist/lite}/.claude/hooks/kiss-expansion-inject.sh +0 -0
  13. package/{substrate → dist/lite}/.claude/hooks/longrun-prep-compounding-sequence-check.sh +0 -0
  14. package/{substrate → dist/lite}/.claude/hooks/plain-english-steering.sh +0 -0
  15. package/{substrate → dist/lite}/.claude/hooks/post-skill-friction-check.sh +0 -0
  16. package/{substrate → dist/lite}/.claude/hooks/post-skill-telemetry.sh +0 -0
  17. package/{substrate → dist/lite}/.claude/hooks/pre-build-gate.sh +0 -0
  18. package/{substrate → dist/lite}/.claude/hooks/pre-commit-gate.sh +0 -0
  19. package/{substrate → dist/lite}/.claude/hooks/session-end.sh +0 -0
  20. package/{substrate → dist/lite}/.claude/hooks/session-reflection.sh +0 -0
  21. package/{substrate → dist/lite}/.claude/hooks/skill-body-grade-gate.sh +0 -0
  22. package/{substrate → dist/lite}/.claude/hooks/skill-body-intent-drift.sh +0 -0
  23. package/{substrate → dist/lite}/.claude/hooks/state-validate.sh +0 -0
  24. package/{substrate → dist/lite}/.claude/hooks/substrate-clarity-gate.sh +0 -0
  25. package/{substrate → dist/lite}/.claude/hooks/temperance-gate.sh +0 -0
  26. package/{substrate → dist/lite}/.claude/hooks/testing-tier-enforce.sh +0 -0
  27. package/{substrate → dist/lite}/.claude/hooks/turn-prose-grade-measure.sh +0 -0
  28. package/{substrate → dist/lite}/.claude/hooks/turn-prose-kiss-check.sh +0 -0
  29. package/{substrate → dist/lite}/.claude/hooks/vocabulary-migration-check.sh +0 -0
  30. package/{substrate → dist/lite}/.claude/hooks/whereami-utc-gate.sh +0 -0
  31. package/dist/lite/.claude/settings.json +212 -0
  32. package/dist/lite/CLAUDE.md +41 -0
  33. package/dist/lite/gitignore +58 -0
  34. package/dist/lite/standards/bassclef-wiring-manifest.json +497 -0
  35. package/dist/lite/whereami.md +24 -0
  36. package/package.json +8 -2
  37. package/substrate/.bassclef/lite-manifest.json +0 -2701
  38. package/substrate/.claude/agents/architect.md +0 -70
  39. package/substrate/.claude/agents/builder.md +0 -114
  40. package/substrate/.claude/agents/designer.md +0 -156
  41. package/substrate/.claude/agents/reviewer.md +0 -88
  42. package/substrate/.claude/hooks/longrun-prep-compounding-axis-check.sh +0 -492
  43. package/substrate/.claude/hooks/skill-step-list-check.sh +0 -171
  44. package/substrate/.claude/luminaries/alan-cooper.md +0 -170
  45. package/substrate/.claude/luminaries/alistair-cockburn.md +0 -140
  46. package/substrate/.claude/luminaries/amazon-pr-faq.md +0 -34
  47. package/substrate/.claude/luminaries/ash-maurya.md +0 -121
  48. package/substrate/.claude/luminaries/bill-buxton.md +0 -210
  49. package/substrate/.claude/luminaries/charles-sanders-peirce.md +0 -150
  50. package/substrate/.claude/luminaries/david-ogilvy.md +0 -192
  51. package/substrate/.claude/luminaries/don-norman.md +0 -173
  52. package/substrate/.claude/luminaries/edward-tufte.md +0 -179
  53. package/substrate/.claude/luminaries/eric-evans.md +0 -160
  54. package/substrate/.claude/luminaries/frederick-brooks.md +0 -50
  55. package/substrate/.claude/luminaries/gang-of-four.md +0 -157
  56. package/substrate/.claude/luminaries/glenford-myers.md +0 -230
  57. package/substrate/.claude/luminaries/hunt-thomas.md +0 -115
  58. package/substrate/.claude/luminaries/hyrum-wright.md +0 -94
  59. package/substrate/.claude/luminaries/jason-fried-dhh.md +0 -46
  60. package/substrate/.claude/luminaries/jesse-james-garrett.md +0 -154
  61. package/substrate/.claude/luminaries/john-ousterhout.md +0 -94
  62. package/substrate/.claude/luminaries/karl-popper.md +0 -132
  63. package/substrate/.claude/luminaries/kent-beck.md +0 -168
  64. package/substrate/.claude/luminaries/linus-torvalds.md +0 -218
  65. package/substrate/.claude/luminaries/martin-fowler.md +0 -164
  66. package/substrate/.claude/luminaries/michael-feathers.md +0 -125
  67. package/substrate/.claude/luminaries/michael-nygard.md +0 -118
  68. package/substrate/.claude/luminaries/robert-c-martin.md +0 -164
  69. package/substrate/.claude/luminaries/saltzer-schroeder.md +0 -194
  70. package/substrate/.claude/luminaries/sophia-prater.md +0 -193
  71. package/substrate/.claude/luminaries/stephen-toulmin.md +0 -131
  72. package/substrate/.claude/luminaries/tony-hoare.md +0 -170
  73. package/substrate/.claude/luminaries/vaughn-vernon.md +0 -50
  74. package/substrate/.claude/luminaries/w-edwards-deming.md +0 -158
  75. package/substrate/.claude/rules/accessor-library-discipline.md +0 -138
  76. package/substrate/.claude/rules/adr-discipline.md +0 -120
  77. package/substrate/.claude/rules/api-conventions.md +0 -125
  78. package/substrate/.claude/rules/artifact-ingestion.md +0 -179
  79. package/substrate/.claude/rules/assert-only-after-verify.md +0 -137
  80. package/substrate/.claude/rules/blocked-items.md +0 -146
  81. package/substrate/.claude/rules/bootstrap-pair-discipline.md +0 -141
  82. package/substrate/.claude/rules/branching.md +0 -28
  83. package/substrate/.claude/rules/cold-adopter-harness-discipline.md +0 -129
  84. package/substrate/.claude/rules/commit-conventions.md +0 -22
  85. package/substrate/.claude/rules/compounding-axis-fresh-analysis.md +0 -188
  86. package/substrate/.claude/rules/compounding-sequence-fresh-analysis.md +0 -188
  87. package/substrate/.claude/rules/context-engineering.md +0 -202
  88. package/substrate/.claude/rules/context-management.md +0 -85
  89. package/substrate/.claude/rules/defensive-bash.md +0 -68
  90. package/substrate/.claude/rules/deferred-actions.md +0 -233
  91. package/substrate/.claude/rules/destructive-operations.md +0 -69
  92. package/substrate/.claude/rules/diagnosis.md +0 -38
  93. package/substrate/.claude/rules/github-issue-flash-tweet.md +0 -156
  94. package/substrate/.claude/rules/guardrails.md +0 -73
  95. package/substrate/.claude/rules/hook-wire-on-author.md +0 -103
  96. package/substrate/.claude/rules/identifier-leak-prevention.md +0 -104
  97. package/substrate/.claude/rules/iteration-bet-brief-completeness.md +0 -54
  98. package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +0 -98
  99. package/substrate/.claude/rules/longrun-prep-plan-doc-compression.md +0 -89
  100. package/substrate/.claude/rules/loop-discipline.md +0 -81
  101. package/substrate/.claude/rules/manual-prod-approval.md +0 -100
  102. package/substrate/.claude/rules/marker-enrichment-discipline.md +0 -99
  103. package/substrate/.claude/rules/mobile-ephemeral-session.md +0 -109
  104. package/substrate/.claude/rules/new-dependency-check.md +0 -51
  105. package/substrate/.claude/rules/oo-ad-entry-point.md +0 -117
  106. package/substrate/.claude/rules/operator-facing-prose.md +0 -196
  107. package/substrate/.claude/rules/option-label-discipline.md +0 -108
  108. package/substrate/.claude/rules/pattern-annotation.md +0 -100
  109. package/substrate/.claude/rules/plain-english-discipline.md +0 -156
  110. package/substrate/.claude/rules/plan-enumeration-needs-value-props.md +0 -211
  111. package/substrate/.claude/rules/pr-body-shape.md +0 -317
  112. package/substrate/.claude/rules/pr-strategy.md +0 -167
  113. package/substrate/.claude/rules/pr-title-shape.md +0 -161
  114. package/substrate/.claude/rules/prototype-workflow.md +0 -65
  115. package/substrate/.claude/rules/reserved-skill-names.md +0 -123
  116. package/substrate/.claude/rules/schema-management.md +0 -49
  117. package/substrate/.claude/rules/sdlc-gates.md +0 -149
  118. package/substrate/.claude/rules/security.md +0 -37
  119. package/substrate/.claude/rules/session-artifacts.md +0 -236
  120. package/substrate/.claude/rules/skill-composition-declarations.md +0 -124
  121. package/substrate/.claude/rules/skill-description-clarity.md +0 -247
  122. package/substrate/.claude/rules/skill-procedure-step-list.md +0 -137
  123. package/substrate/.claude/rules/state-schema-validation.md +0 -162
  124. package/substrate/.claude/rules/stuck-signal-diagnostic.md +0 -140
  125. package/substrate/.claude/rules/substrate-config-schema.md +0 -98
  126. package/substrate/.claude/rules/test-list-discipline.md +0 -175
  127. package/substrate/.claude/rules/test-sufficiency.md +0 -210
  128. package/substrate/.claude/rules/testing-tier-config.md +0 -145
  129. package/substrate/.claude/rules/testing.md +0 -38
  130. package/substrate/.claude/rules/turn-estimate-grounding.md +0 -134
  131. package/substrate/.claude/rules/visual-hierarchy.md +0 -437
  132. package/substrate/.claude/rules/we-dont-break-adopters.md +0 -126
  133. package/substrate/.claude/rules/whereami-load-bearing.md +0 -202
  134. package/substrate/.claude/rules/writing-craft-discipline.md +0 -92
  135. package/substrate/.claude/rules/wu-sequencing-compounds.md +0 -145
  136. package/substrate/.claude/skills/build/SKILL.md +0 -640
  137. package/substrate/.claude/skills/chronicle/SKILL.md +0 -55
  138. package/substrate/.claude/skills/clean-artifacts/SKILL.md +0 -249
  139. package/substrate/.claude/skills/decompose/SKILL.md +0 -280
  140. package/substrate/.claude/skills/diagnose/SKILL.md +0 -297
  141. package/substrate/.claude/skills/feynman/SKILL.md +0 -90
  142. package/substrate/.claude/skills/howdoi/SKILL.md +0 -105
  143. package/substrate/.claude/skills/ia-model/SKILL.md +0 -108
  144. package/substrate/.claude/skills/interaction-design/SKILL.md +0 -112
  145. package/substrate/.claude/skills/interpret-input/SKILL.md +0 -180
  146. package/substrate/.claude/skills/journal/SKILL.md +0 -209
  147. package/substrate/.claude/skills/kiss/SKILL.md +0 -449
  148. package/substrate/.claude/skills/launch/SKILL.md +0 -915
  149. package/substrate/.claude/skills/lean-canvas/SKILL.md +0 -332
  150. package/substrate/.claude/skills/longrun/SKILL.md +0 -463
  151. package/substrate/.claude/skills/luminary/SKILL.md +0 -481
  152. package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +0 -177
  153. package/substrate/.claude/skills/onboard-repo/SKILL.md +0 -1624
  154. package/substrate/.claude/skills/pattern-review/SKILL.md +0 -99
  155. package/substrate/.claude/skills/personas/SKILL.md +0 -207
  156. package/substrate/.claude/skills/promote/SKILL.md +0 -283
  157. package/substrate/.claude/skills/requirement/SKILL.md +0 -98
  158. package/substrate/.claude/skills/retro/SKILL.md +0 -117
  159. package/substrate/.claude/skills/riff/SKILL.md +0 -114
  160. package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +0 -163
  161. package/substrate/.claude/skills/session-end/SKILL.md +0 -309
  162. package/substrate/.claude/skills/session-log/SKILL.md +0 -299
  163. package/substrate/.claude/skills/skills/SKILL.md +0 -228
  164. package/substrate/.claude/skills/spec/SKILL.md +0 -105
  165. package/substrate/.claude/skills/sprint/SKILL.md +0 -392
  166. package/substrate/.claude/skills/stage/SKILL.md +0 -384
  167. package/substrate/.claude/skills/state-a-problem/SKILL.md +0 -185
  168. package/substrate/.claude/skills/temperance/SKILL.md +0 -108
  169. package/substrate/.claude/skills/use-case/SKILL.md +0 -417
  170. package/substrate/.claude/skills/user-stories/SKILL.md +0 -268
  171. package/substrate/.claude/skills/value-prop/SKILL.md +0 -251
  172. package/substrate/.claude/skills/verify/SKILL.md +0 -160
  173. package/substrate/.claude/skills/visual-review/SKILL.md +0 -503
  174. package/substrate/.claude/skills/whats-the-plan/SKILL.md +0 -202
  175. package/substrate/.claude/skills/whereami/SKILL.md +0 -307
  176. package/substrate/AGENTS.md +0 -79
  177. package/substrate/CLAUDE-lite.md +0 -85
  178. package/substrate/CODE_OF_CONDUCT.md +0 -28
  179. package/substrate/CONTRIBUTING.md +0 -177
  180. package/substrate/README.md +0 -173
  181. package/substrate/SECURITY.md +0 -19
  182. package/substrate/architecture/decisions/ADR-029-release-pipeline.md +0 -79
  183. package/substrate/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +0 -139
  184. package/substrate/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +0 -192
  185. package/substrate/architecture/decisions/ADR-039-release-tagging-scheme.md +0 -145
  186. package/substrate/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +0 -155
  187. package/substrate/architecture/decisions/ADR-044-unified-skill-body-template.md +0 -162
  188. package/substrate/lib/clean-artifacts-sweep.sh +0 -112
  189. package/substrate/lib/code-comment-discipline.sh +0 -144
  190. package/substrate/lib/composer-preflight.sh +0 -459
  191. package/substrate/lib/hook-inject.sh +0 -255
  192. package/substrate/lib/luminary-pick.sh +0 -96
  193. package/substrate/lib/output-discipline.sh +0 -143
  194. package/substrate/lib/prose-scan-boundary.sh +0 -171
  195. package/substrate/lib/rewrite-check.sh +0 -214
  196. package/substrate/lib/state.sh +0 -1372
  197. package/substrate/lib/telemetry.sh +0 -205
  198. package/substrate/lib/tier-check.sh +0 -187
  199. package/substrate/lib/tier-dependency-audit.sh +0 -1088
  200. package/substrate/presence/install/bassclef-hook-connect.sh +0 -178
  201. package/substrate/presence/install/bassclef-sync.dispatcher.template.sh +0 -841
  202. package/substrate/presence/install/bassclef-sync.template.sh +0 -2076
  203. package/substrate/presence/install/schedule-auto-save.cron.sh +0 -88
  204. package/substrate/presence/install/schedule-auto-save.taskscheduler.md +0 -122
  205. package/substrate/scripts/aggregate-telemetry.sh +0 -217
  206. package/substrate/scripts/analyze-tier-dependencies.sh +0 -239
  207. package/substrate/scripts/generate-lite-manifest.sh +0 -505
  208. package/substrate/scripts/generate-tier-manifest.sh +0 -28
  209. package/substrate/scripts/intent-drift-check.sh +0 -456
  210. package/substrate/scripts/lite-manifest-drift-check.sh +0 -146
  211. package/substrate/scripts/render-lite-manifest-doc.sh +0 -150
  212. package/substrate/standards/adr-template.md +0 -86
  213. package/substrate/standards/api-conventions/nextjs.md +0 -84
  214. package/substrate/standards/artifact-composition.md +0 -209
  215. package/substrate/standards/bash-hook-safety.md +0 -246
  216. package/substrate/standards/bassclef-configs-schema.md +0 -232
  217. package/substrate/standards/bassclef-evolution.md +0 -143
  218. package/substrate/standards/bassclef-internal-jargon.md +0 -244
  219. package/substrate/standards/bassclef-managed-sentinel.md +0 -96
  220. package/substrate/standards/bassclef-source-config.md +0 -228
  221. package/substrate/standards/branch-stacking.md +0 -408
  222. package/substrate/standards/code-safety-principles.md +0 -176
  223. package/substrate/standards/composer-prerequisites.md +0 -155
  224. package/substrate/standards/deferred-actions-schema.md +0 -204
  225. package/substrate/standards/dependency-discipline/cargo.md +0 -39
  226. package/substrate/standards/dependency-discipline/gem.md +0 -43
  227. package/substrate/standards/dependency-discipline/go-mod.md +0 -41
  228. package/substrate/standards/dependency-discipline/npm.md +0 -42
  229. package/substrate/standards/dependency-discipline/pip.md +0 -42
  230. package/substrate/standards/deployment-topology/ec2-tailscale.md +0 -225
  231. package/substrate/standards/deployment-topology.md +0 -69
  232. package/substrate/standards/docs-sync-allowlist.md +0 -76
  233. package/substrate/standards/domain-and-dns.md +0 -145
  234. package/substrate/standards/frontend-stack.md +0 -67
  235. package/substrate/standards/frontmatter-schema.md +0 -154
  236. package/substrate/standards/graceful-exit.md +0 -227
  237. package/substrate/standards/hook-idempotency.md +0 -102
  238. package/substrate/standards/hook-injection-discipline.md +0 -202
  239. package/substrate/standards/hook-install-class.md +0 -215
  240. package/substrate/standards/input-handler-interface.md +0 -152
  241. package/substrate/standards/lite-manifest-schema-changes.md +0 -135
  242. package/substrate/standards/luminary-matching.md +0 -105
  243. package/substrate/standards/luminary-problem-patterns.md +0 -481
  244. package/substrate/standards/migration-discipline/active-record.md +0 -50
  245. package/substrate/standards/migration-discipline/alembic.md +0 -43
  246. package/substrate/standards/migration-discipline/gorm.md +0 -50
  247. package/substrate/standards/migration-discipline/prisma.md +0 -53
  248. package/substrate/standards/migration-discipline/sqlalchemy.md +0 -51
  249. package/substrate/standards/mobile-ephemeral-session.md +0 -167
  250. package/substrate/standards/model-routing-discipline.md +0 -160
  251. package/substrate/standards/ogilvy-writing-rules.md +0 -225
  252. package/substrate/standards/opener-discipline.md +0 -96
  253. package/substrate/standards/operator-facing-prose-discipline.md +0 -201
  254. package/substrate/standards/persona-schema.md +0 -229
  255. package/substrate/standards/pluggable-luminaries.md +0 -323
  256. package/substrate/standards/pr-body-discipline.md +0 -115
  257. package/substrate/standards/preview-state-schema.md +0 -189
  258. package/substrate/standards/project-directory-layout.md +0 -276
  259. package/substrate/standards/release-tagging.md +0 -137
  260. package/substrate/standards/reserved-skill-names.md +0 -120
  261. package/substrate/standards/scannable-multi-option-output.md +0 -261
  262. package/substrate/standards/sdlc-compliance.md +0 -286
  263. package/substrate/standards/sdlc-gates/typescript.md +0 -57
  264. package/substrate/standards/secrets-lifecycle.md +0 -210
  265. package/substrate/standards/security-scanner-adapter.md +0 -145
  266. package/substrate/standards/session-board.md +0 -256
  267. package/substrate/standards/skill-output-discipline.md +0 -90
  268. package/substrate/standards/state-spine-contract.md +0 -255
  269. package/substrate/standards/state-spine.md +0 -511
  270. package/substrate/standards/steering-hints/kiss-words.md +0 -11
  271. package/substrate/standards/substrate-config-schema.md +0 -267
  272. package/substrate/standards/tech-stack-config.md +0 -109
  273. package/substrate/standards/tier-dependency-analysis.md +0 -167
  274. package/substrate/standards/tier-runtime-deps/lite.md +0 -57
  275. package/substrate/standards/tier-tag-schema.md +0 -155
  276. package/substrate/standards/two-layer-config.md +0 -99
  277. package/substrate/standards/use-case-format.md +0 -292
  278. package/substrate/standards/user-story-invest.md +0 -268
  279. package/substrate/standards/velocity-and-appetite.md +0 -229
  280. package/substrate/standards/voice-input-pattern.md +0 -119
  281. package/substrate/standards/whereami-schema.md +0 -301
  282. package/substrate/standards/worktree-management.md +0 -211
  283. package/substrate/standards/writing-guide.md +0 -213
  284. package/substrate/templates/chronicle-template.md +0 -75
  285. package/substrate/templates/deferred-action-template.md +0 -45
  286. package/substrate/templates/memory-proposal-template.md +0 -77
  287. package/substrate/templates/persona-template.md +0 -200
  288. package/substrate/templates/pr-faq.md +0 -45
  289. package/substrate/templates/secret-rotation-template.md +0 -162
  290. package/substrate/templates/spec-template.md +0 -131
  291. package/substrate/templates/use-case-template.md +0 -194
  292. package/substrate/templates/user-story-template.md +0 -107
  293. package/substrate/templates/whereami-template.md +0 -101
@@ -1,112 +0,0 @@
1
- ---
2
- tier: lite
3
- name: interaction-design
4
- description: "Turn IA plus task flows into interaction design \u2014 state diagrams, sequence diagrams, user flows. Final step in the UX translation chain before decompose."
5
- problem: "Nav and entities are drawn but the flow between screens is not. Devs invent transitions."
6
- value: "State diagrams and sequence diagrams that name every screen transition and API call."
7
- inputs: [IA model plus task flows]
8
- outputs: [State diagrams, Sequence diagrams, User flow overview]
9
- user_invocable: true
10
- disable_model_invocation: false
11
- ---
12
-
13
- # Interaction Design — State + Sequence + Flows
14
-
15
- Translate IA and task flows into formal interaction specifications.
16
- Final layer: JTBD → HTA → IA → **Interaction Design**.
17
-
18
- ## When to Use
19
-
20
- - After `/ia-model` — entity map and screen map exist
21
- - Before building UI — need to specify states, transitions, edge cases
22
- - When a flow feels "off" — formalize it to find the gap
23
- - When handing off to implementation — engineers need state machines, not wireframes
24
-
25
- ## Method 1: UML State Diagrams
26
-
27
- **The most rigorous tool.** Each screen or component mode is a state;
28
- user actions and system events are transitions.
29
-
30
- Use when:
31
- - Components with distinct modes (idle → expanded → editing)
32
- - Pages with conditional rendering (loading → empty → populated → filtered)
33
- - Async flows (idle → running → success/error)
34
- - Auth states (anonymous → authenticating → authenticated → expired)
35
-
36
- ### Edge case checklist
37
- For every state diagram, ask:
38
- - What happens if the user **goes back** (browser back button)?
39
- - What happens if the user **refreshes** in this state?
40
- - What happens if the **session expires** while in this state?
41
- - What happens if **data changes** while the user is viewing it?
42
- - What happens on a **slow connection** (loading states)?
43
- - What happens on **error** (API fails, DB down)?
44
-
45
- ## Method 2: UML Sequence Diagrams
46
-
47
- **Show temporal interaction** between actors: User, UI, Backend, External APIs.
48
-
49
- Use when:
50
- - API call chains (auth flows, multi-step wizards)
51
- - Async job flows (trigger → queue → worker → result)
52
- - Data display (page load → server component → DB → render)
53
-
54
- ## Method 3: User Flows
55
-
56
- **Less formal, more communicative.** Good for stakeholder alignment.
57
- Flowcharts showing decision points and paths through the UI.
58
-
59
- ## Method 4: Service Blueprints
60
-
61
- **Extend user flows to include backstage processes.**
62
-
63
- ```
64
- FRONTSTAGE (user sees): Browse → Filter → Detail → Act
65
- ↕ ↕ ↕
66
- BACKSTAGE (system does): Score → Index → Enrich → Notify
67
- ↕ ↕
68
- SUPPORT PROCESSES: Ingest → Classify → Deduplicate
69
- ```
70
-
71
- ## Output Format
72
-
73
- For each interaction flow:
74
-
75
- ```markdown
76
- ## Flow: [name]
77
-
78
- ### State Diagram
79
- [Mermaid stateDiagram-v2]
80
-
81
- ### Sequence Diagram (if async/multi-actor)
82
- [Mermaid sequenceDiagram]
83
-
84
- ### Edge Cases
85
- - Back button: [behavior]
86
- - Refresh: [behavior]
87
- - Session expiry: [behavior]
88
- - Error: [behavior]
89
- - Slow connection: [behavior]
90
-
91
- ### Traceability
92
- | State/Transition | HTA Task | JTBD |
93
- |-----------------|----------|------|
94
- | ... | ... | ... |
95
- ```
96
-
97
- ## The Anchoring Standard
98
-
99
- The full stack: **JTBD → HTA → UML State Diagrams → UML Sequence Diagrams**,
100
- with IA falling out of entity modeling in between.
101
-
102
- ## References
103
-
104
- - Alan Cooper, *About Face* — Goal-Directed Design
105
- - Craig Larman, *Applying UML and Patterns*
106
- - Don Norman, *The Design of Everyday Things*
107
- - Jenifer Tidwell, *Designing Interfaces*
108
- - Jim Kalbach, *The Jobs to Be Done Playbook*
109
-
110
- ## Output discipline
111
-
112
- Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.
@@ -1,180 +0,0 @@
1
- ---
2
- tier: lite
3
- name: interpret-input
4
- description: "Turn any input into a schema-valid InputArtifact. Modes: text, URL, image, repo, transcript, napkin, mixed. text + repo ship today. Others return valid stubs. First step of the cameo pipeline."
5
- problem: "Different sessions start with different input shapes \u2014 text or URL or image or repo or transcript."
6
- value: "One schema-validated artifact from any input. Downstream skills read one shape not seven."
7
- inputs: [Any input — text or URL or image or repo ref or transcript]
8
- outputs: [A schema-validated InputArtifact with kind and content]
9
- user_invocable: true
10
- disable_model_invocation: false
11
- modes: [text, url, image, repo, transcript, napkin, mixed]
12
- ---
13
-
14
- # /interpret-input — Input Handler Skill
15
-
16
- First-step skill of the cameo pipeline. It takes operator input (text from phone, URLs, screenshots, repos) and returns schema-valid `InputArtifact` JSON. Downstream skills read it via the typed accessor library.
17
-
18
- This is the bassclef-side interface for the cameo fanout pipeline. Every input type maps to the same downstream payload.
19
-
20
- ## When to invoke
21
-
22
- - Composer chain — `/stage <tier> "<input>"` calls this first. Operators rarely run it directly.
23
- - Manual fixture — `/interpret-input "<text>" --persist --slug=<custom>` saves a reference InputArtifact for tests.
24
- - Spot-check — see what the extractor returns for a given input before running the full chain.
25
-
26
- ## What this skill is NOT
27
-
28
- <!-- FKGL-EXEMPT: technical reference table -->
29
- | Skill | Altitude | Output |
30
- |-------|----------|--------|
31
- | `/interpret-input` | **Input normalization** | Schema-validated InputArtifact JSON |
32
- | `/objectory-decompose` | OOA/D extraction | BCE matrix + actor list (consumes InputArtifact) |
33
- | `/stage` | Pipeline composer | End-to-end chain (dispatches /interpret-input) |
34
- | `/state get reference input-artifact <slug>` | Inspection | Reads existing InputArtifact via accessor |
35
- <!-- /FKGL-EXEMPT -->
36
-
37
- ## Procedure
38
-
39
- The skill dispatches `scripts/interpret-input.sh <source> [args]`. It writes JSON to stdout, or persists to `docs/input-artifacts/<slug>.json` with `--persist`.
40
-
41
- ### Usage
42
-
43
- <!-- FKGL-EXEMPT: CLI reference -->
44
- ```bash
45
- bash scripts/interpret-input.sh "<source>" [--type=auto|text|url|image|repo|transcript|napkin|mixed] [--persist] [--slug=<slug>]
46
- ```
47
-
48
- | Flag | Default | Meaning |
49
- |---|---|---|
50
- | `--type=<type>` | `auto` | Override auto-detection |
51
- | `--persist` | off | Write to `docs/input-artifacts/<slug>.json` (validated by state-validate.sh) |
52
- | `--slug=<slug>` | auto-generated | Override slug; useful for memorable fixtures |
53
- <!-- /FKGL-EXEMPT -->
54
-
55
- ### Examples
56
-
57
- <!-- FKGL-EXEMPT: CLI examples -->
58
- ```bash
59
- # Text from mobile paragraph (auto-detected as text):
60
- bash scripts/interpret-input.sh "Dramatically simplify and delightfully surface deals..." --persist --slug=2026-04-27-your-app-rework
61
-
62
- # URL (auto-detected):
63
- bash scripts/interpret-input.sh "https://example.com/spec.html"
64
-
65
- # Local repo (auto-detected via .git/ presence):
66
- bash scripts/interpret-input.sh /path/to/local/repo
67
-
68
- # GitHub URL as repo (must override; URL prefix wins auto-detect):
69
- bash scripts/interpret-input.sh https://github.com/your-org/your-app --type=repo
70
-
71
- # Stub mode for image (image extraction not yet implemented):
72
- bash scripts/interpret-input.sh "/path/to/screenshot.png" --type=image
73
-
74
- # Force transcript mode (auto-detection cannot tell):
75
- bash scripts/interpret-input.sh "speaker-tagged-prose..." --type=transcript
76
- ```
77
- <!-- /FKGL-EXEMPT -->
78
-
79
- ### Auto-detection
80
-
81
- With `--type=auto` (default), the wrapper inspects the source:
82
-
83
- <!-- FKGL-EXEMPT: regex reference list -->
84
- - `^https?://` → `url` (use `--type=repo` for github.com URLs you want walked as a repo)
85
- - `\.(png|jpg|jpeg|gif|webp|svg)$` → `image`
86
- - `\.git$` → `repo`
87
- - Local directory containing `.git/` → `repo` (walks the repo)
88
- - else → `text`
89
- <!-- /FKGL-EXEMPT -->
90
-
91
- Override auto-detection when it guesses wrong. Common cases: a transcript that looks like prose. A napkin the wrapper reads as a regular image. A github URL you want walked as a repo, not fetched as a page.
92
-
93
- ### Intent paragraph (optional)
94
-
95
- If the source carries an intent, put it on the InputArtifact `intent` field. Plain text. Downstream composers (`/launch`, `/stage`, `/riff-prototypes`) call `/pick-luminaries` to match the intent against the luminary catalog. Adopters who load `/extract-intent` via `additionalDirectories` get richer signal. Bassclef core stays unaware of that override.
96
-
97
- ### Output
98
-
99
- Without `--persist` (default): pretty-printed JSON to stdout. Exit 0 on success.
100
-
101
- With `--persist`: JSON written to `docs/input-artifacts/<slug>.json`. Stdout prints the path. The state-validate.sh PreToolUse hook checks the file against `standards/state-spine/schemas/input-artifact.schema.json` on write.
102
-
103
- ## Mode status
104
-
105
- Two modes work today. Five return schema-valid stubs pending future work.
106
-
107
- <!-- FKGL-EXEMPT: mode reference table -->
108
- | Mode | Status | Behavior |
109
- |---|---|---|
110
- | `text` | works | Identity — `extracted_text = source`; URL regex for `external_urls` |
111
- | `repo` | works | Walks local git dir or clones URL; populates `entities_seen`, `actor_candidates`, `boundary_objects`, `readme_excerpt`, `title`. Falls back to a stub if the path cannot be resolved. |
112
- | `url` | not yet | Target — fetch + readable text scrape |
113
- | `image` | not yet | Target — vision-based UI extraction |
114
- | `transcript` | not yet | Target — speaker-tagged actor mapping |
115
- | `napkin` | not yet | Target — hand-drawn diagram extraction |
116
- | `mixed` | not yet | Target — compose multiple extractors |
117
- <!-- /FKGL-EXEMPT -->
118
-
119
- Stubs are still schema-valid InputArtifacts. The current stub value is `extracted_text: "deferred to Phase C"` — a marker string a future release will update. Downstream consumers should not crash on it. They may surface a warning that BCE extraction will be empty.
120
-
121
- ### Repo extractor heuristics
122
-
123
- The repo extractor walks the directory. It populates `structural_hints`:
124
-
125
- <!-- FKGL-EXEMPT: extractor field reference -->
126
- - **`title`**: first H1 in README, or repo dirname
127
- - **`readme_excerpt`**: first 30 lines of README.md (or .MD/.rst/.txt)
128
- - **`entities_seen`**: Prisma model names + directory-pattern heuristic (a directory with ≥3 children whose name is plural-ish — e.g. `skills/` → `skill`, `discoveries/` → `discovery`, `canvases/` → `canvas`)
129
- - **`actor_candidates`**: role/auth keywords grep across source (admin, owner, operator, viewer, editor, member, customer, etc.)
130
- - **`boundary_objects`**: Next.js routes (`app/**/page.{ts,tsx}` and `pages/**/*.{ts,tsx}`) + API endpoints (`app/api/**`, `pages/api/**`)
131
- <!-- /FKGL-EXEMPT -->
132
-
133
- Output ships even when extraction is partial. Empty arrays mean no signal found. Downstream agents decide whether partial is enough.
134
-
135
- ### Repo extractor: source resolution
136
-
137
- <!-- FKGL-EXEMPT: source resolution table -->
138
- | Source | Resolution |
139
- |---|---|
140
- | Local directory containing `.git/` | Use directly |
141
- | `<path>` passed with `--type=repo` and exists | Use directly |
142
- | `https://github.com/...` URL with `--type=repo` | `git clone --depth=1` to temp dir; cleanup after |
143
- | Source cannot be resolved (path missing, clone failed) | Returns a stub artifact |
144
- <!-- /FKGL-EXEMPT -->
145
-
146
- ## Rules
147
-
148
- - **Read-only by default** (no `--persist`); side effect is opt-in.
149
- - **Schema validation is the gate** — `--persist` writes go through state-validate.sh. Invalid InputArtifacts BLOCK the write.
150
- - **No raw input in downstream skills** — `/objectory-decompose` MUST receive a path to an InputArtifact, not raw text.
151
- - **Slug uniqueness** — operator slugs override auto-generated. Do not overwrite existing fixtures. The wrapper errors if `--persist` would overwrite.
152
- - **Stub artifacts are valid** — downstream must handle the marker string (`extracted_text == "deferred to Phase C"`) as empty extraction + a warning.
153
-
154
- ## Skipping / Aborting
155
-
156
- - Empty source: exit 2.
157
- - Unknown type: exit 2 (not in the type enum).
158
- - Schema validation failure on `--persist`: state-validate.sh BLOCKs. Surface to operator.
159
- - Existing slug + `--persist` would overwrite: exit 4. Operator must pass `--slug=<new>`.
160
-
161
- ## Relationship to other skills + standards
162
-
163
- - `standards/input-handler-interface.md` — the interface contract this skill implements.
164
- - `standards/state-spine/schemas/input-artifact.schema.json` — the schema this skill produces.
165
- - `standards/state-spine.md` §"Storage format" — InputArtifact is a pure-JSON entity (`Shape C`).
166
- - `.claude/skills/objectory-decompose/SKILL.md` — primary downstream consumer.
167
- - `.claude/skills/preview/SKILL.md` — composer that calls this first.
168
- - `.claude/skills/state/SKILL.md` — `/state get reference input-artifact <slug>` reads back via accessor.
169
-
170
- ## Reserved-names check
171
-
172
- `interpret-input` is NOT on `standards/reserved-skill-names.md` list.
173
-
174
- ## Enforcement
175
-
176
- Methodology-level. The skill registers via bassclef-sync symlink. state-validate.sh enforces schema on `--persist` writes.
177
-
178
- ## Output discipline
179
-
180
- Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.
@@ -1,209 +0,0 @@
1
- ---
2
- tier: lite
3
- name: journal
4
- description: "Draft a journal entry from this session's work \u2014 tuned to PE, search, and board audiences per the writing guide and brand questionnaire."
5
- problem: "Session work fades from memory. Insight worth sharing with PE partners or eng leaders never gets written."
6
- value: "Drafts a journal entry from this session's work. Tuned for PE, search, and board audiences."
7
- inputs: [Optional audience filter — PE or search or board]
8
- outputs: [Journal draft with voice per audience, Audience recommendations table]
9
- user_invocable: true
10
- disable_model_invocation: false
11
- requires:
12
- files: [standards/writing-guide.md]
13
- network: true
14
- ---
15
-
16
- # /journal — Draft Journal Entries from Session Work
17
-
18
- Draft 3 short-form journal entries from the current session's work,
19
- calibrated to the operator's target audience and brand positioning.
20
- Publishable to LinkedIn, Substack, an internal blog, or held as
21
- archive.
22
-
23
- ## Plain-English requirement (Phase II Trim the Fat — bassclef#559)
24
-
25
- journal entries have personal/sensory/story-driven voice (per `feedback_writing_voice` memory) — voice trumps strict rule. The substrate-clarity-gate hook treats journal entry path as ADVISORY tier: it emits notices on bassclef-internal jargon, long sentences, and passive voice but never blocks.
26
-
27
- INSTEAD of running /kiss words mechanically over draft prose: read the advisory notices and decide. Some passive voice in journal entries is fine ("the deploy was approved" reads naturally in narrative). Some long sentences carry rhythm. Pure mechanical substitution would flatten the voice.
28
-
29
- What DOES still apply: drop bassclef-internal jargon (substrate, primitive, load-bearing, composer, tier-preset). LinkedIn audiences include investors, eng leaders, board operators — none have bassclef context. If the draft uses these words, run /kiss words on those specific terms (or rewrite by hand).
30
-
31
- ## Before writing
32
-
33
- 1. Read `standards/writing-guide.md` — the journal-entry style guide
34
- 2. Read the brand questionnaire from memory (if it exists) for audience,
35
- tone, topics, and positioning
36
- 3. Read the current session's chronicle entry for raw material
37
- 4. If called after `/journal mine`: use the selected moment as primary
38
- source material. Read the full chronicle for that session.
39
- 5. Check what angles have been covered (read existing drafts in
40
- `docs/operator-private/journals/`). This is **informational context, not a
41
- filter** — repeating themes across posts is intentional. It builds
42
- recognition. But knowing what's been said helps pick fresh angles.
43
-
44
- ## Two audiences — every notable moment gets two variants
45
-
46
- Each notable decision, trade-off, or insight produces **two post variants**:
47
-
48
- ### Variant A: CPTO → Board / PE / Executive Search
49
-
50
- The operator speaking to people who evaluate operating talent and back
51
- enterprise transformations.
52
-
53
- - **Primary audience**: PE senior partners, executive search leaders,
54
- board-level decision-makers
55
- - **Tone**: Bezos/Jassy/Collison — calm, analytical, operator-grade
56
- - **Depth**: Business outcome, capital efficiency, governance model.
57
- One concrete technical detail as proof, no more.
58
- - **Vocabulary**: "governance primitive" not "SKILL.md". "Coordination
59
- framework" not "agent choreography." See writing guide.
60
- - **Connects to**: EBITDA, capital efficiency, operating model, scale,
61
- talent leverage, risk management
62
-
63
- ### Variant B: CPTO → Senior Engineers / Technical Founders
64
-
65
- The same operator speaking to people who will build or evaluate the
66
- technical approach.
67
-
68
- - **Primary audience**: CTOs, VP Engineering, staff+ engineers,
69
- technical founders, eng managers
70
- - **Tone**: Thoughtful practitioner — shows the work, not just the result
71
- - **Depth**: Architecture decisions, trade-offs, what was tried and
72
- rejected, specific patterns used. Technical enough that a senior
73
- engineer learns something.
74
- - **Vocabulary**: Use real terms — ADRs, choreography, hooks, substrate.
75
- No need to abstract. This audience knows what a pre-commit hook is.
76
- - **Connects to**: Engineering quality, developer experience, system
77
- reliability, team velocity, technical debt management
78
-
79
- ### How to pair them
80
-
81
- The same moment becomes two posts:
82
- - **Variant A**: "We killed three features before writing a line of code.
83
- Here's why that's the highest-leverage thing a technical operator can do."
84
- - **Variant B**: "Our Shaper agent runs Five Whys before any spec reaches
85
- Construction. Here's the gate architecture and why it caught a scope
86
- creep we would have shipped."
87
-
88
- Both posts reference the same work. They land differently because they
89
- answer different questions: A answers "is this person a credible operator?"
90
- B answers "is this approach technically sound?"
91
-
92
- ## Rules
93
-
94
- - **Two variants per notable moment** — label as (A: Board) and (B: Engineering)
95
- - **Name concepts, not implementations** in Variant A. Real terms in Variant B.
96
- - **Connect to enterprise economics** in Variant A. Connect to engineering
97
- quality in Variant B.
98
- - **Bezos/Jassy/Collison tone** for Variant A. Thoughtful practitioner for B.
99
- - **Structure**: Hook → Setup → Body (with → arrows) → Takeaway
100
- - **Every post must stand completely on its own** — no "in my last post"
101
- references, no series context, no callbacks. Each post works for someone
102
- who has never read anything you've written before.
103
- - **Repetition across posts is intentional** — the LinkedIn algorithm shows
104
- each post to a subset of your network. Covering the same theme from
105
- different angles builds recognition. Don't avoid a topic just because
106
- you've posted about it before.
107
- - **600-1200 words** per post
108
- - **3-7 posts per session** — across both variants. A session with 2 notable
109
- moments produces 4 posts (2A + 2B).
110
-
111
- ## Audience recommendations table (MUST — include in every draft file)
112
-
113
- Every draft file must start with a master audience recommendations table:
114
-
115
- ```markdown
116
- | # | Variant | Title | Primary audience | Hook strength | Publish priority |
117
- |---|---------|-------|-----------------|--------------|-----------------|
118
- | 1A | Board | [title] | PE partners — "[angle]" | Strong | 1 |
119
- | 1B | Eng | [title] | Senior engineers — "[angle]" | Very strong | 2 |
120
- | 2A | Board | [title] | Board/search — "[angle]" | Medium | Hold |
121
- | 2B | Eng | [title] | CTOs — "[angle]" | Strong | 3 |
122
- ```
123
-
124
- For each post, specify:
125
- - **Variant**: A (Board/PE) or B (Engineering)
126
- - **Primary audience**: PE partners, board, exec search (A) or CTOs, eng leaders, technical founders (B)
127
- - **Hook strength**: rate honestly. "Very strong" = contrarian or cautionary. "Strongest" = thought leadership.
128
- - **Publish priority**: recommended sequence with rationale, or "Hold" for article/longer form
129
- - **Pair notes**: which A/B posts cover the same moment — they should not publish same day
130
-
131
- End the table with:
132
- - **Recommended publish sequence** with rationale (alternate A/B to reach both audiences)
133
- - **Hold for articles** — posts that work better as longer LinkedIn articles
134
- - **Pairing notes** — which A and B posts are about the same moment
135
-
136
- ## When a concept needs technical explanation
137
-
138
- Flag it for the /feynman skill. In the draft, mark it:
139
-
140
- ```
141
- [FEYNMAN: concept name — for CTO sidebar]
142
- ```
143
-
144
- After drafting all 3 posts, run /feynman on each flagged concept.
145
- Weave the Feynman explanation into the post or note it as a comment-thread follow-up.
146
-
147
- ## Output
148
-
149
- 1. Check for gaps: when was the last journal entry? Are there missed
150
- sessions? **Backfill those FIRST, oldest to newest** (per session-artifacts rule).
151
- 2. Write drafts to `docs/operator-private/journals/YYYY-MM-DD.md` with audience
152
- recommendations table at the top
153
- 3. Push drafts to the repo's journal-entry Google Doc — use `--dir` for
154
- automatic chronological ordering (the script sorts by filename):
155
- ```bash
156
- # Batch push — script sorts YYYY-MM-DD filenames automatically
157
- cd ~/src/your-org/your-app && npx tsx scripts/push-to-gdoc.ts \
158
- --dir [drafts directory] \
159
- --doc-id [journal_doc_id from substrate.config.md]
160
-
161
- # Single file push (when only one new draft)
162
- cd ~/src/your-org/your-app && npx tsx scripts/push-to-gdoc.ts \
163
- --file [draft path] \
164
- --doc-id [journal_doc_id from substrate.config.md]
165
-
166
- # Fix out-of-order doc: clear and re-push everything sorted
167
- cd ~/src/your-org/your-app && npx tsx scripts/push-to-gdoc.ts \
168
- --dir [drafts directory] --replace \
169
- --doc-id [journal_doc_id from substrate.config.md]
170
- ```
171
- Google Doc IDs (for reference — always read from substrate.config.md):
172
- - Bassclef: `1f9nUSmwpFvcZhnfmYvhyNWZuElMwqfz3muWdIcwMUrA`
173
- - POA: `1Gwhsh6aC6lq1jRQhGSpZ9BUNBlpdY3SNFpnIlMP97Zk`
174
- 4. **Verify the push succeeded** — check the output for "Appended N chars"
175
- 5. Note in the chronicle that posts were drafted and pushed
176
- 6. If Google Doc push fails (no script, no auth): drafts stay local in
177
- `docs/operator-private/journals/` AND a deferred-action entry is written so the
178
- next capable session completes the push. Do not silently skip.
179
-
180
- ### Deferring a failed push
181
-
182
- When the current session cannot push to the configured `journal_doc_id`
183
- (missing `gcloud-auth` / `google-docs-write` — typical in mobile,
184
- cloud-web, or a desktop session without the SA key):
185
-
186
- ```bash
187
- TS=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
188
- ID="${TS}-journal-gdoc-push"
189
- cp templates/deferred-action-template.md \
190
- "docs/deferred-actions/${ID}.md"
191
- # Fill frontmatter:
192
- # pending_action: push-journals-to-gdoc
193
- # requires_capability: [gcloud-auth, google-docs-write]
194
- # priority: medium
195
- # origin_skill: /journal
196
- # resolves_when: |
197
- # Google Doc <journal_doc_id> reflects docs/operator-private/journals/ in chronological order
198
- # Cross-ref the draft file(s) in the body.
199
- git add "docs/deferred-actions/${ID}.md"
200
- git commit -m "chore: defer journal gdoc-push (<draft-date>)"
201
- ```
202
-
203
- See `.claude/rules/deferred-actions.md` and
204
- `standards/deferred-actions-schema.md`. Silent skip violates
205
- `session-artifacts.md` ("silence is not deferral").
206
-
207
- ## Output discipline
208
-
209
- Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.