skilldrop-cli 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +413 -0
  3. package/bin/skilldrop.js +338 -0
  4. package/model-routing.json +147 -0
  5. package/package.json +36 -0
  6. package/packs.json +90 -0
  7. package/skills/accessibility-audit/SKILL.md +74 -0
  8. package/skills/accessibility-audit/examples/login-form.md +76 -0
  9. package/skills/accessibility-audit/manifest.json +11 -0
  10. package/skills/accessibility-audit/reference.md +69 -0
  11. package/skills/adr-generator/SKILL.md +49 -0
  12. package/skills/adr-generator/manifest.json +11 -0
  13. package/skills/adr-generator/templates/madr.md +56 -0
  14. package/skills/adr-generator/templates/nygard.md +19 -0
  15. package/skills/ai-usage-report/SKILL.md +111 -0
  16. package/skills/ai-usage-report/examples/weekly-engineering-team.md +133 -0
  17. package/skills/ai-usage-report/manifest.json +11 -0
  18. package/skills/ai-usage-report/scripts/build_report.py +436 -0
  19. package/skills/ai-usage-report/templates/report-per-user.md +42 -0
  20. package/skills/ai-usage-report/templates/report-team-rollup.md +49 -0
  21. package/skills/ai-usage-report/templates/usage-event-schema.md +76 -0
  22. package/skills/api-contract-draft/SKILL.md +69 -0
  23. package/skills/api-contract-draft/manifest.json +11 -0
  24. package/skills/api-contract-draft/reference.md +73 -0
  25. package/skills/api-contract-draft/templates/openapi-skeleton.yaml +148 -0
  26. package/skills/architecture-diagrams/SKILL.md +66 -0
  27. package/skills/architecture-diagrams/examples/aws-three-tier.md +44 -0
  28. package/skills/architecture-diagrams/examples/c4-container-saas.md +51 -0
  29. package/skills/architecture-diagrams/examples/microservices-sequence.md +49 -0
  30. package/skills/architecture-diagrams/manifest.json +28 -0
  31. package/skills/architecture-diagrams/templates/c4-container.puml +31 -0
  32. package/skills/architecture-diagrams/templates/mermaid-aws.md +52 -0
  33. package/skills/architecture-diagrams/templates/mermaid-flowchart.md +37 -0
  34. package/skills/architecture-diagrams/templates/mermaid-sequence.md +39 -0
  35. package/skills/audience-profile/SKILL.md +73 -0
  36. package/skills/audience-profile/manifest.json +11 -0
  37. package/skills/audience-profile/reference.md +175 -0
  38. package/skills/brief-intake/SKILL.md +78 -0
  39. package/skills/brief-intake/manifest.json +11 -0
  40. package/skills/brief-intake/templates/brief-adr.md +41 -0
  41. package/skills/brief-intake/templates/brief-decision-log.md +35 -0
  42. package/skills/brief-intake/templates/brief-deck.md +43 -0
  43. package/skills/brief-intake/templates/brief-design-doc.md +48 -0
  44. package/skills/brief-intake/templates/brief-exec-summary.md +47 -0
  45. package/skills/brief-intake/templates/brief-generic.md +45 -0
  46. package/skills/brief-intake/templates/brief-runbook.md +44 -0
  47. package/skills/brief-intake/templates/brief-tech-comparison.md +38 -0
  48. package/skills/bug-triage/SKILL.md +67 -0
  49. package/skills/bug-triage/manifest.json +11 -0
  50. package/skills/bug-triage/templates/bug-ticket.md +86 -0
  51. package/skills/business-case/SKILL.md +64 -0
  52. package/skills/business-case/manifest.json +11 -0
  53. package/skills/business-case/templates/business-case.md +60 -0
  54. package/skills/capacity-cost-model/SKILL.md +64 -0
  55. package/skills/capacity-cost-model/manifest.json +11 -0
  56. package/skills/capacity-cost-model/reference.md +54 -0
  57. package/skills/capacity-cost-model/templates/cost-model.md +68 -0
  58. package/skills/council-review/SKILL.md +106 -0
  59. package/skills/council-review/examples/redis-cache-decision.md +75 -0
  60. package/skills/council-review/manifest.json +11 -0
  61. package/skills/council-review/reference.md +76 -0
  62. package/skills/council-review/seats/architect.md +29 -0
  63. package/skills/council-review/seats/bench.md +39 -0
  64. package/skills/council-review/seats/operator.md +27 -0
  65. package/skills/council-review/seats/pragmatist.md +29 -0
  66. package/skills/council-review/seats/security-engineer.md +29 -0
  67. package/skills/council-review/seats/user-advocate.md +27 -0
  68. package/skills/council-review/templates/council-review.md +59 -0
  69. package/skills/data-contract/SKILL.md +67 -0
  70. package/skills/data-contract/manifest.json +11 -0
  71. package/skills/data-contract/reference.md +46 -0
  72. package/skills/data-contract/templates/data-contract.md +69 -0
  73. package/skills/db-schema-design/SKILL.md +68 -0
  74. package/skills/db-schema-design/manifest.json +11 -0
  75. package/skills/db-schema-design/reference.md +56 -0
  76. package/skills/db-schema-design/templates/schema-design.md +75 -0
  77. package/skills/decision-log/SKILL.md +67 -0
  78. package/skills/decision-log/manifest.json +11 -0
  79. package/skills/deck-builder/SKILL.md +114 -0
  80. package/skills/deck-builder/examples/exec-board-update.md +108 -0
  81. package/skills/deck-builder/manifest.json +17 -0
  82. package/skills/deck-builder/reference.md +92 -0
  83. package/skills/deck-builder/requirements.txt +1 -0
  84. package/skills/deck-builder/scripts/build_deck.py +309 -0
  85. package/skills/deck-builder/templates/deck-spec.json +97 -0
  86. package/skills/deck-builder/templates/palettes.json +59 -0
  87. package/skills/design-doc/SKILL.md +49 -0
  88. package/skills/design-doc/manifest.json +11 -0
  89. package/skills/design-doc/templates/design-doc.md +98 -0
  90. package/skills/devils-advocate/SKILL.md +142 -0
  91. package/skills/devils-advocate/lenses/adversarial-review.md +88 -0
  92. package/skills/devils-advocate/lenses/edge-cases.md +95 -0
  93. package/skills/devils-advocate/lenses/future-proofing.md +75 -0
  94. package/skills/devils-advocate/lenses/test-coverage.md +90 -0
  95. package/skills/devils-advocate/manifest.json +11 -0
  96. package/skills/devils-advocate/templates/challenge.md +118 -0
  97. package/skills/doc-critique/SKILL.md +119 -0
  98. package/skills/doc-critique/manifest.json +11 -0
  99. package/skills/doc-critique/rubrics/adr.md +36 -0
  100. package/skills/doc-critique/rubrics/decision-log.md +39 -0
  101. package/skills/doc-critique/rubrics/deck.md +45 -0
  102. package/skills/doc-critique/rubrics/design-doc.md +42 -0
  103. package/skills/doc-critique/rubrics/exec-summary.md +41 -0
  104. package/skills/doc-critique/rubrics/generic.md +40 -0
  105. package/skills/doc-critique/rubrics/runbook.md +42 -0
  106. package/skills/doc-critique/rubrics/tech-comparison.md +40 -0
  107. package/skills/doc-critique/templates/critique.md +49 -0
  108. package/skills/exec-summary/SKILL.md +45 -0
  109. package/skills/exec-summary/manifest.json +11 -0
  110. package/skills/exec-summary/templates/exec-summary.md +48 -0
  111. package/skills/feature-implement-loop/SKILL.md +83 -0
  112. package/skills/feature-implement-loop/manifest.json +11 -0
  113. package/skills/figma-diagrams/SKILL.md +85 -0
  114. package/skills/figma-diagrams/manifest.json +35 -0
  115. package/skills/figma-diagrams/reference.md +91 -0
  116. package/skills/figma-diagrams/requirements.txt +1 -0
  117. package/skills/figma-diagrams/scripts/_figma_client.py +71 -0
  118. package/skills/figma-diagrams/scripts/frame_to_mermaid.py +102 -0
  119. package/skills/figma-diagrams/scripts/inspect_file.py +46 -0
  120. package/skills/figma-diagrams/scripts/list_comments.py +35 -0
  121. package/skills/figma-diagrams/scripts/post_comment.py +52 -0
  122. package/skills/figma-diagrams/templates/figjam-import.json +20 -0
  123. package/skills/guide-builder/SKILL.md +76 -0
  124. package/skills/guide-builder/examples/local-setup-guide.md +127 -0
  125. package/skills/guide-builder/manifest.json +11 -0
  126. package/skills/guide-builder/templates/api-reference.md +120 -0
  127. package/skills/guide-builder/templates/design-walkthrough.md +72 -0
  128. package/skills/guide-builder/templates/setup-guide.md +109 -0
  129. package/skills/incident-comms/SKILL.md +68 -0
  130. package/skills/incident-comms/manifest.json +11 -0
  131. package/skills/incident-comms/reference.md +43 -0
  132. package/skills/incident-comms/templates/messages.md +82 -0
  133. package/skills/llm-eval-harness/SKILL.md +73 -0
  134. package/skills/llm-eval-harness/manifest.json +11 -0
  135. package/skills/llm-eval-harness/reference.md +58 -0
  136. package/skills/llm-eval-harness/templates/eval-plan.md +63 -0
  137. package/skills/llm-eval-harness/templates/golden-case.jsonl +5 -0
  138. package/skills/migration-plan/SKILL.md +68 -0
  139. package/skills/migration-plan/manifest.json +11 -0
  140. package/skills/migration-plan/templates/migration-plan.md +68 -0
  141. package/skills/nfr-spec/SKILL.md +63 -0
  142. package/skills/nfr-spec/manifest.json +11 -0
  143. package/skills/nfr-spec/reference.md +74 -0
  144. package/skills/nfr-spec/templates/nfr-spec.md +56 -0
  145. package/skills/observability-plan/SKILL.md +70 -0
  146. package/skills/observability-plan/manifest.json +11 -0
  147. package/skills/observability-plan/reference.md +67 -0
  148. package/skills/observability-plan/templates/observability-plan.md +62 -0
  149. package/skills/okr-cascade/SKILL.md +59 -0
  150. package/skills/okr-cascade/evals/eval_queries.json +12 -0
  151. package/skills/okr-cascade/evals/evals.json +28 -0
  152. package/skills/okr-cascade/manifest.json +11 -0
  153. package/skills/okr-cascade/templates/okr-cascade.md +46 -0
  154. package/skills/postmortem-generator/SKILL.md +65 -0
  155. package/skills/postmortem-generator/manifest.json +11 -0
  156. package/skills/postmortem-generator/templates/postmortem.md +67 -0
  157. package/skills/prd-draft/SKILL.md +62 -0
  158. package/skills/prd-draft/manifest.json +11 -0
  159. package/skills/prd-draft/templates/prd.md +66 -0
  160. package/skills/prfaq/SKILL.md +75 -0
  161. package/skills/prfaq/evals/eval_queries.json +13 -0
  162. package/skills/prfaq/evals/evals.json +32 -0
  163. package/skills/prfaq/manifest.json +11 -0
  164. package/skills/prfaq/templates/prfaq.md +60 -0
  165. package/skills/release-notes/SKILL.md +61 -0
  166. package/skills/release-notes/manifest.json +11 -0
  167. package/skills/release-notes/templates/release-notes.md +83 -0
  168. package/skills/requirements-interview/SKILL.md +61 -0
  169. package/skills/requirements-interview/manifest.json +11 -0
  170. package/skills/requirements-interview/templates/interview-kit.md +63 -0
  171. package/skills/reverse-architecture/SKILL.md +103 -0
  172. package/skills/reverse-architecture/manifest.json +11 -0
  173. package/skills/reverse-architecture/reference.md +150 -0
  174. package/skills/reverse-architecture/templates/description.md +52 -0
  175. package/skills/reverse-architecture/templates/extraction.md +55 -0
  176. package/skills/runbook-generator/SKILL.md +42 -0
  177. package/skills/runbook-generator/manifest.json +11 -0
  178. package/skills/runbook-generator/templates/runbook.md +109 -0
  179. package/skills/slide-outliner/SKILL.md +58 -0
  180. package/skills/slide-outliner/manifest.json +11 -0
  181. package/skills/slide-outliner/templates/deck-outline.md +131 -0
  182. package/skills/sonar-onboard/SKILL.md +170 -0
  183. package/skills/sonar-onboard/manifest.json +11 -0
  184. package/skills/sonar-onboard/reference.md +151 -0
  185. package/skills/sonar-onboard/templates/github-actions-sonar-server.yml.tmpl +50 -0
  186. package/skills/sonar-onboard/templates/github-actions-sonarcloud.yml.tmpl +53 -0
  187. package/skills/sonar-onboard/templates/readme-snippet.md +38 -0
  188. package/skills/sonar-onboard/templates/sonar-project.properties.tmpl +31 -0
  189. package/skills/sonar-review/SKILL.md +220 -0
  190. package/skills/sonar-review/lenses/bugs.md +48 -0
  191. package/skills/sonar-review/lenses/code-smells.md +64 -0
  192. package/skills/sonar-review/lenses/coverage-and-duplication.md +74 -0
  193. package/skills/sonar-review/lenses/security-hotspots.md +56 -0
  194. package/skills/sonar-review/lenses/vulnerabilities.md +52 -0
  195. package/skills/sonar-review/manifest.json +37 -0
  196. package/skills/sonar-review/reference.md +167 -0
  197. package/skills/sonar-review/templates/report.md +84 -0
  198. package/skills/strategy-analysis/SKILL.md +63 -0
  199. package/skills/strategy-analysis/evals/eval_queries.json +13 -0
  200. package/skills/strategy-analysis/evals/evals.json +36 -0
  201. package/skills/strategy-analysis/manifest.json +11 -0
  202. package/skills/success-metrics/SKILL.md +63 -0
  203. package/skills/success-metrics/evals/eval_queries.json +11 -0
  204. package/skills/success-metrics/evals/evals.json +27 -0
  205. package/skills/success-metrics/manifest.json +11 -0
  206. package/skills/success-metrics/templates/metrics-plan.md +55 -0
  207. package/skills/tech-comparison-matrix/SKILL.md +56 -0
  208. package/skills/tech-comparison-matrix/manifest.json +11 -0
  209. package/skills/tech-comparison-matrix/templates/matrix.md +45 -0
  210. package/skills/test-plan-generator/SKILL.md +59 -0
  211. package/skills/test-plan-generator/manifest.json +11 -0
  212. package/skills/test-plan-generator/templates/test-plan.md +83 -0
  213. package/skills/threat-model/SKILL.md +65 -0
  214. package/skills/threat-model/examples/document-upload.md +56 -0
  215. package/skills/threat-model/manifest.json +11 -0
  216. package/skills/threat-model/reference.md +69 -0
  217. package/skills/user-journey-map/SKILL.md +64 -0
  218. package/skills/user-journey-map/evals/eval_queries.json +12 -0
  219. package/skills/user-journey-map/evals/evals.json +30 -0
  220. package/skills/user-journey-map/examples/b2b-saas-onboarding.md +69 -0
  221. package/skills/user-journey-map/manifest.json +11 -0
  222. package/skills/user-journey-map/templates/journey-map.md +47 -0
  223. package/skills/user-story-splitter/SKILL.md +88 -0
  224. package/skills/user-story-splitter/examples/notifications-epic.md +123 -0
  225. package/skills/user-story-splitter/manifest.json +11 -0
  226. package/skills/user-story-splitter/templates/story.md +40 -0
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: audience-profile
3
+ description: Translate an audience type (exec, board, technical, sales, investor, internal, partner, customer) into structural rules — slide count, density, tone, must-have sections, things to avoid. Reusable across deck-builder, slide-outliner, and exec-summary. Use whenever a stakeholder communication deliverable is being designed for a specific audience.
4
+ ---
5
+
6
+ # audience-profile
7
+
8
+ You help the user (or another skill) pick the right *shape* for a communication deliverable based on who's receiving it. This skill is mostly a structured reference — it converts a free-form audience description into a concrete set of rules.
9
+
10
+ ## How to respond
11
+
12
+ 1. **Map the free-form audience to an archetype.** Common ones in [`reference.md`](reference.md):
13
+
14
+ | Archetype | Typical signals |
15
+ |---|---|
16
+ | `exec` | "VP", "C-suite", "leadership team", a *single* senior decision-maker |
17
+ | `board` | "Board of directors", "board update", "quarterly business review" |
18
+ | `technical` | "Engineering team", "architecture review", "design review", "tech-lead", "staff engineers" |
19
+ | `sales` | "Customer pitch", "prospect", "sales meeting", "pre-sales" |
20
+ | `investor` | "Series A", "VCs", "fundraising", "investor update" |
21
+ | `internal` | "All-hands", "team meeting", "alignment session", "stand-up" |
22
+ | `partner` | "Partner meeting", "joint customer", "channel partner" |
23
+ | `customer` | "Customer success", "QBR", "renewal conversation", "onboarding" |
24
+
25
+ When the user describes a *mixed* audience ("VP Eng plus their staff plus the partner CTO"), pick the **least technical** archetype — you can always add detail in an appendix, but you can't un-confuse a non-technical attendee with mid-deck jargon.
26
+
27
+ 2. **Emit a structured profile.** When invoked, return the archetype's full ruleset:
28
+
29
+ ```
30
+ Audience archetype: <name>
31
+ Slide count target: <range>
32
+ Bullet density: <max bullets per slide>, <max words per bullet>
33
+ Tone: <descriptor>
34
+ Title style: <assertion / descriptive / outcome / benefit>
35
+ Must-have sections: <ordered list>
36
+ Layouts to favour: <list>
37
+ Layouts to avoid: <list>
38
+ Things to never include: <list>
39
+ ```
40
+
41
+ 3. **Be opinionated.** This skill exists to *make decisions* for the user. If they push back, fine — but don't hedge in the initial response. "Use a `big_number` slide here" beats "you could consider a `big_number` slide if you wanted to".
42
+
43
+ 4. **Hand off cleanly.** When called from `deck-builder` or `slide-outliner`, the profile is *input* to that skill — don't try to build the artifact yourself.
44
+
45
+ ## When to use this skill
46
+
47
+ - ✅ Before drafting a deck, exec summary, or design review.
48
+ - ✅ When the user describes the audience vaguely ("a leadership meeting") and you need to make density/length decisions.
49
+ - ✅ When you need to challenge a prior draft ("this is too dense for an exec audience").
50
+
51
+ ## When NOT to use this skill
52
+
53
+ - ❌ For peer engineering communication where the "audience" is just "another engineer reading the doc". The standard documentation style is fine.
54
+ - ❌ For purely internal artifacts (ADRs, runbooks) — those have their own conventions independent of audience.
55
+
56
+ ## Useful references
57
+
58
+ - [`reference.md`](reference.md) — full archetype matrix with all eight profiles
59
+
60
+ ## Quality bar
61
+
62
+ - **Profile output is concrete.** "Slide count: 8–12" beats "keep it short".
63
+ - **Mixed audiences resolve to the least-technical archetype**, with the more-technical detail moved to an appendix.
64
+ - **Don't invent new archetypes** for a single use case — pick the closest one and note the divergence ("`board`, but they've asked for technical depth on the proposal — add a 'how it works' section between Financials and Risks").
65
+
66
+ ## Anti-patterns to avoid
67
+
68
+ - ❌ **Treating "executives" as one archetype regardless of context.** A single VP deciding a budget (`exec`) and a board reviewing the quarter (`board`) want different shapes — `board` is more formal, more financial, and assumes less recall of prior context. Match the setting, not the seniority label.
69
+ - ❌ **Profiling the most senior title in the room instead of the actual decision-maker.** If the VP is there to rubber-stamp what their staff engineer recommends, the staff engineer is the audience. Profile who the deliverable must *convince*, not who has the grandest title.
70
+ - ❌ **Defaulting a mixed room to the most technical archetype** because the deck "needs the detail". A non-technical attendee lost on slide 3 is lost for the whole meeting; resolve to the least-technical archetype and push depth to an appendix.
71
+ - ❌ **Hedged, generic output.** "Know your audience and keep it appropriately concise" is a fortune cookie, not a profile. Emit the numbers: slide count, bullet density, the must-have sections in order.
72
+ - ❌ **Building the artifact instead of the profile.** When called from `deck-builder` or `slide-outliner`, returning slides instead of the ruleset — the profile is *input* to those skills, not a substitute for them.
73
+ - ❌ **Over-fitting to one named person's quirks** ("Dana hates animations") instead of the role. Profiles are reusable because they're keyed to the archetype; bake in one individual's preferences and the profile dies when Dana changes jobs. Note the personal quirk as a one-line override, keep the archetype intact.
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "audience-profile",
3
+ "version": "0.1.0",
4
+ "description": "Translate an audience type (exec, board, technical, sales, investor, internal, partner, customer) into structural rules — slide count, density, tone, must-have sections, things to avoid. Reusable across deck-builder, slide-outliner, and exec-summary. Use whenever a stakeholder communication deliverable is being designed for a specific audience.",
5
+ "entrypoint": "SKILL.md",
6
+ "deps": { "npm": [], "pip": [] },
7
+ "env": { "required": [], "optional": [] },
8
+ "related": ["deck-builder", "slide-outliner"],
9
+ "tags": ["audience", "stakeholder-communication", "reference"],
10
+ "model": { "tier": "light", "rationale": "Maps fixed audience archetypes to structural rules. Lookup against a rubric, not synthesis." }
11
+ }
@@ -0,0 +1,175 @@
1
+ # Audience archetype matrix
2
+
3
+ Eight archetypes covering the common stakeholder-communication situations an architect runs into. Each has rules dense enough to drive concrete structural choices in `deck-builder`, `slide-outliner`, or `exec-summary`.
4
+
5
+ ---
6
+
7
+ ## `exec`
8
+
9
+ A single senior decision-maker (VP, SVP, C-suite) or a small leadership team. They have 15–30 minutes max and want to leave with a decision.
10
+
11
+ | Dimension | Rule |
12
+ |---|---|
13
+ | Slide count | 6–10 (decision review) or 3–5 (quick update) |
14
+ | Bullets / slide | 3 max |
15
+ | Words / bullet | ≤ 8 |
16
+ | Tone | Direct, opinionated, outcomes-first |
17
+ | Title style | **Assertion** — "Postgres meets our latency target" |
18
+ | Must-have sections | The Ask • TL;DR • Business impact • Risks • What we need from you |
19
+ | Favour layouts | `big_number`, `content` (sparse), `closing` |
20
+ | Avoid layouts | `quote` (rarely lands), dense `two_column` |
21
+ | Never include | Technical jargon without translation, "team" slides, agenda slides |
22
+
23
+ **Opening rule:** First slide after the cover must state the Ask. If the exec stops listening after slide 2, they should still know what you wanted.
24
+
25
+ ---
26
+
27
+ ## `board`
28
+
29
+ Board of directors or steering committee. Quarterly cadence, mixed business/financial fluency, often skim before the meeting.
30
+
31
+ | Dimension | Rule |
32
+ |---|---|
33
+ | Slide count | 8–12 (quarterly) |
34
+ | Bullets / slide | 3 max |
35
+ | Words / bullet | ≤ 6 |
36
+ | Tone | Polished, business-led, transparent about risks |
37
+ | Title style | **Outcome** — "$24M ARR protected by Q3" |
38
+ | Must-have sections | Cover • TL;DR • Strategic context • Financials • Risks • Ask |
39
+ | Favour layouts | `big_number`, `two_column` (before/after), `quote` (testimonials), `closing` |
40
+ | Avoid layouts | Dense `content` slides |
41
+ | Never include | Hidden bad news, sandbagged numbers, unfounded optimism |
42
+
43
+ **Risk rule:** Always include a risks slide with mitigations. Boards trust presenters who name risks; they distrust presenters who pretend there are none.
44
+
45
+ ---
46
+
47
+ ## `technical`
48
+
49
+ Engineering peers, architecture review, design review, staff/principal-level audience. Wants depth, expects pushback.
50
+
51
+ | Dimension | Rule |
52
+ |---|---|
53
+ | Slide count | 12–20 (full design review) |
54
+ | Bullets / slide | 5–6 |
55
+ | Words / bullet | ≤ 14 |
56
+ | Tone | Precise, neutral, evidence-first |
57
+ | Title style | **Descriptive ok** — "Migration approach" — or assertion |
58
+ | Must-have sections | Context • Goals/non-goals • Proposal (3–5 slides) • Alternatives considered • Risks • Rollout • Open questions |
59
+ | Favour layouts | `content`, `two_column` (compare options), `section` (chapter breaks) |
60
+ | Avoid layouts | `big_number` (overkill), `quote` (out of place) |
61
+ | Never include | Hand-waving on hard problems, "trust me" assertions without evidence |
62
+
63
+ **Alternatives rule:** Always show at least 2 alternatives with why-not. Skipping this section is the single biggest credibility killer in a technical review.
64
+
65
+ ---
66
+
67
+ ## `sales`
68
+
69
+ Customer or prospect in a pre-sale or expansion conversation. Mixed business/technical, optimising for "what does this do for me".
70
+
71
+ | Dimension | Rule |
72
+ |---|---|
73
+ | Slide count | 8–12 |
74
+ | Bullets / slide | 3–4 |
75
+ | Words / bullet | ≤ 10 |
76
+ | Tone | Story-arc, benefits-led, social proof |
77
+ | Title style | **Benefit-led** — "Cut close time by 40%" |
78
+ | Must-have sections | Hook • Their pain (in their language) • Our solution • Proof (logos/quotes) • Pricing tease • Close |
79
+ | Favour layouts | `big_number` (proof points), `quote` (customer testimonials), `two_column` (before/after) |
80
+ | Avoid layouts | `section` (kills momentum), dense `content` |
81
+ | Never include | Feature lists without business translation, internal roadmap detail, competitor bashing |
82
+
83
+ **Hook rule:** Slide 2 must be about *their* problem, not about us. If we don't earn their attention here, the rest of the deck is wasted.
84
+
85
+ ---
86
+
87
+ ## `investor`
88
+
89
+ Fundraising audience — VCs, angels, strategic investors. Cynical, pattern-matching, looking for reasons to say no.
90
+
91
+ | Dimension | Rule |
92
+ |---|---|
93
+ | Slide count | 10–15 (full deck), 5–7 (teaser) |
94
+ | Bullets / slide | 3–4 |
95
+ | Words / bullet | ≤ 10 |
96
+ | Tone | Confident, evidence-heavy, narrative-driven |
97
+ | Title style | **Assertion + number** where possible |
98
+ | Must-have sections | Problem • Market • Product • Traction • Business model • Team • Ask |
99
+ | Favour layouts | `big_number` (traction, market size), `content`, `two_column` (us vs. status quo) |
100
+ | Avoid layouts | `section` (slows momentum), `closing` (use a definite Ask slide instead) |
101
+ | Never include | TAM math without bottom-up validation, vanity metrics, "no competition" claims |
102
+
103
+ **Team rule:** Team slide goes near the end (after traction) — investors evaluate the team *in the context of* what the team has built, not as an opening trust statement.
104
+
105
+ ---
106
+
107
+ ## `internal`
108
+
109
+ All-hands, team meetings, alignment sessions. The audience already trusts the presenter and shares context.
110
+
111
+ | Dimension | Rule |
112
+ |---|---|
113
+ | Slide count | 5–10 |
114
+ | Bullets / slide | 4–5 |
115
+ | Words / bullet | ≤ 12 |
116
+ | Tone | Collaborative, candid, action-oriented |
117
+ | Title style | **Topic ok** — "Q3 priorities" |
118
+ | Must-have sections | Context (often skip — they know it) • Proposal • Discussion topics • Action items |
119
+ | Favour layouts | `content`, `two_column`, brief `quote` (e.g. customer signal that motivated the change) |
120
+ | Avoid layouts | `closing` (instead end on "discussion") |
121
+ | Never include | Over-polished language that suggests the deck is also for an external audience |
122
+
123
+ **Discussion rule:** End on a slide that *invites* discussion — listed questions, decisions to make as a group, etc. — not a thank-you.
124
+
125
+ ---
126
+
127
+ ## `partner`
128
+
129
+ Joint meeting with a strategic partner, channel, integrator, or co-seller. Both sides have agendas.
130
+
131
+ | Dimension | Rule |
132
+ |---|---|
133
+ | Slide count | 8–12 |
134
+ | Bullets / slide | 3–4 |
135
+ | Words / bullet | ≤ 10 |
136
+ | Tone | Mutual benefit, joint outcomes |
137
+ | Title style | **Mutual benefit** — "Joint customers see X% faster onboarding" |
138
+ | Must-have sections | Mutual context • What we're each bringing • Joint outcomes • Concrete next steps |
139
+ | Favour layouts | `two_column` (us / them or before / after), `quote` (joint customer if you have one) |
140
+ | Avoid layouts | Roadmap detail beyond integration touchpoints |
141
+ | Never include | One-sided "what we offer" pages, internal strategy detail |
142
+
143
+ **Reciprocity rule:** Every slide should reference *both* sides' contribution, not just ours. If a slide is fully about your company's product, it doesn't belong here.
144
+
145
+ ---
146
+
147
+ ## `customer`
148
+
149
+ Existing customer in QBR, renewal conversation, or success check-in. Audience knows the product, wants to know "what's next for me".
150
+
151
+ | Dimension | Rule |
152
+ |---|---|
153
+ | Slide count | 6–10 (QBR), 3–5 (success check-in) |
154
+ | Bullets / slide | 3–4 |
155
+ | Words / bullet | ≤ 12 |
156
+ | Tone | Outcomes (theirs), partnership tone |
157
+ | Title style | **Outcome for them** — "You'll save 12 engineer-hours/week" |
158
+ | Must-have sections | Their results to date • What's new for them • What's next together • Asks (both sides) |
159
+ | Favour layouts | `big_number` (their numbers), `two_column` (last quarter / next quarter), `content` |
160
+ | Avoid layouts | `section`, dense roadmap pages |
161
+ | Never include | Generic product updates not relevant to this customer, churn-flavoured language |
162
+
163
+ **Specificity rule:** Every number on this deck should be *their* number, not industry averages or aggregated benchmarks.
164
+
165
+ ---
166
+
167
+ ## Picking when audiences mix
168
+
169
+ When you have a mixed room ("VP Eng + the partner CTO + their procurement lead"):
170
+
171
+ 1. Identify the *decision-maker* — the person whose yes/no matters most. That's your archetype.
172
+ 2. Add an **appendix** with the depth the technical attendees will want.
173
+ 3. Don't try to serve every archetype in the main flow — you'll satisfy none of them.
174
+
175
+ Exception: for a `technical + exec` mix where both are key decision-makers, use `exec` for the main flow and put technical detail in slides labelled as appendix. Engineers tolerate light main decks more than execs tolerate heavy ones.
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: brief-intake
3
+ description: Turn raw mess — a Slack thread, meeting transcript, Jira ticket, half-written Notion page, email chain, or paragraph of free-form context — into a structured brief that the downstream skill (adr-generator, design-doc, runbook-generator, exec-summary, deck-builder, tech-comparison-matrix) can consume without further intake. Use whenever the user has unstructured source material and is about to invoke another skilldrop skill, or when a draft is missing the load-bearing context the next step will need.
4
+ ---
5
+
6
+ # brief-intake
7
+
8
+ You help the user (or the next skill in the chain) absorb raw unstructured input and emit a clean, structured brief shaped for whatever artifact comes next. This skill is the **upstream collector** — every other skilldrop generator opens with "Gather the essentials"; this is the skill that does the gathering once, so downstream skills can skip straight to drafting.
9
+
10
+ ## How to respond
11
+
12
+ 1. **Identify the downstream target.** Ask if the user hasn't said: *"What are you going to do with this brief?"* Map the answer to one of:
13
+
14
+ | Downstream skill | Trigger phrases |
15
+ |---|---|
16
+ | `adr-generator` | "ADR", "decision record", "capture a decision", "we decided X" |
17
+ | `design-doc` | "design doc", "tech proposal", "one-pager for review", "RFC" |
18
+ | `runbook-generator` | "runbook", "on-call doc", "operational doc", "prod-readiness" |
19
+ | `tech-comparison-matrix` | "compare X vs Y", "vendor selection", "tech selection" |
20
+ | `exec-summary` | "exec summary", "1-pager for the VP", "board update" |
21
+ | `deck-builder` / `slide-outliner` | "deck", "slides", "presentation", "pitch", "review meeting" |
22
+ | `decision-log` | "decisions and action items", "follow-ups from the meeting" |
23
+ | _(generic)_ | None of the above — emit the generic brief and let the user pick later |
24
+
25
+ 2. **Ingest the source.** The user will paste text, give a file path, or describe verbally. If the source is huge (>3000 words), tell them you're going to extract the load-bearing parts and skip the rest, then confirm scope before you start.
26
+
27
+ 3. **Extract once, into the target's shape.** Each downstream skill needs a specific set of fields. Use the matching template:
28
+
29
+ - `templates/brief-adr.md` — context · forcing function · options · chosen option · trade-offs
30
+ - `templates/brief-design-doc.md` — what · who · why now · constraints · open questions
31
+ - `templates/brief-runbook.md` — service · owners · stack · deployment surface · known failure modes
32
+ - `templates/brief-tech-comparison.md` — question · candidates · evaluation criteria · constraints
33
+ - `templates/brief-exec-summary.md` — ask · audience · business impact · what you need
34
+ - `templates/brief-deck.md` — topic · audience · time budget · key messages · palette/brand
35
+ - `templates/brief-decision-log.md` — source · scope · today's date
36
+ - `templates/brief-generic.md` — fallback when target is unknown
37
+
38
+ 4. **Mark every field with a confidence tag.** Each extracted field is tagged inline:
39
+
40
+ - `[explicit]` — stated outright in the source
41
+ - `[implied]` — clearly inferable from the source (quote the snippet)
42
+ - `[inferred]` — your judgement, not in the source — the user should verify
43
+ - `[missing]` — not in the source; the downstream skill will need to ask
44
+
45
+ This is the audit trail. The downstream skill (or the user) can then trust `[explicit]` fields and challenge the `[inferred]` ones.
46
+
47
+ 5. **Surface the gaps explicitly.** End with a "🚩 Missing for downstream" section listing fields that came back `[missing]` and which ones are load-bearing enough that the downstream skill will refuse to start without them. For example: "`adr-generator` will refuse to draft without at least 2 considered options — only 1 found in the source."
48
+
49
+ 6. **Don't draft the artifact yourself.** This skill stops at the structured brief. Hand off explicitly: *"Brief ready. Run `/adr-generator` with this brief as input."*
50
+
51
+ ## Quality bar
52
+
53
+ - **Quote, don't paraphrase, when extracting.** When a field is `[explicit]` or `[implied]`, include a 5–15 word verbatim snippet from the source so the downstream skill (and the user) can verify nothing was hallucinated.
54
+ - **Convert relative dates to absolute dates.** "Next Friday", "EOQ", "the sprint after this one" all become `YYYY-MM-DD` with `(implied)` if you had to compute it. Today's date is in the system context — use it.
55
+ - **Don't invent people.** If the source says "someone from platform should…", the owner is `unowned`, not a guess.
56
+ - **Don't merge across sources unless the user asked.** If the user pastes a Slack thread *and* a doc, ask whether you should treat them as one brief or extract separately.
57
+ - **Strip noise aggressively.** Greetings, off-topic banter, "lol", and emoji reactions get dropped. The brief is the signal, not the conversation.
58
+
59
+ ## When to use this skill
60
+
61
+ - ✅ Before invoking any other skilldrop generator when the input is messy.
62
+ - ✅ When a user pastes a 90-minute transcript and says "I need an ADR from this".
63
+ - ✅ When the next step's `SKILL.md` says "Gather the essentials" and the user has unstructured source material.
64
+ - ✅ As a checkpoint after `decision-log` — to turn a single extracted decision into an `adr-generator` brief.
65
+
66
+ ## When NOT to use this skill
67
+
68
+ - ❌ When the user has already given a clean, structured brief — go straight to the downstream skill.
69
+ - ❌ For pure summarization — that's not what this is. The output is shaped for a *specific next step*, not a generic summary.
70
+ - ❌ For raw transcript cleanup. If the user wants meeting notes cleaned up, use `decision-log`.
71
+
72
+ ## Anti-patterns to avoid
73
+
74
+ - ❌ Padding `[inferred]` fields to make the brief look complete. Empty `[missing]` is more honest and more useful.
75
+ - ❌ Restating the source verbatim. The brief is *shaped*, not a copy.
76
+ - ❌ Skipping the gaps section because the brief looks fine — the gaps are the *most useful output* for the user about to invoke the downstream skill.
77
+ - ❌ Asking 4+ clarifying questions. If the source is too thin, say so once and let the user decide whether to add material or proceed with gaps flagged.
78
+ - ❌ Emitting the brief in prose. Downstream skills want structured fields, not paragraphs.
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "brief-intake",
3
+ "version": "0.1.0",
4
+ "description": "Turn raw mess — a Slack thread, meeting transcript, Jira ticket, half-written Notion page, email chain, or paragraph of free-form context — into a structured brief that the downstream skill (adr-generator, design-doc, runbook-generator, exec-summary, deck-builder, tech-comparison-matrix) can consume without further intake. Use whenever the user has unstructured source material and is about to invoke another skilldrop skill, or when a draft is missing the load-bearing context the next step will need.",
5
+ "entrypoint": "SKILL.md",
6
+ "deps": { "npm": [], "pip": [] },
7
+ "env": { "required": [], "optional": [] },
8
+ "related": ["adr-generator", "decision-log", "deck-builder", "design-doc", "exec-summary", "runbook-generator", "slide-outliner", "tech-comparison-matrix"],
9
+ "tags": ["intake", "brief", "extraction", "preprocessing", "pipeline"],
10
+ "model": { "tier": "standard", "rationale": "Extraction + [explicit]/[implied]/[inferred] tagging. The tagging needs care — above haiku, below opus." }
11
+ }
@@ -0,0 +1,41 @@
1
+ # Brief: ADR
2
+
3
+ > Target downstream skill: `adr-generator`
4
+
5
+ ## Decision
6
+ {One-sentence noun phrase — the decision, not the question} [explicit|implied|inferred|missing]
7
+ > "{verbatim snippet from source}"
8
+
9
+ ## Context / forcing function
10
+ {Why is a decision needed *now*? What changed?} [explicit|implied|inferred|missing]
11
+ > "{verbatim snippet}"
12
+
13
+ ## Decision drivers
14
+ - {Driver 1 — constraint, requirement, or non-negotiable} [explicit|implied|inferred|missing]
15
+ - {Driver 2}
16
+ - {Driver 3}
17
+
18
+ ## Options considered
19
+ - **Option A** — {one-line description} [explicit|implied|inferred|missing]
20
+ - **Option B** — {one-line description}
21
+ - **Option C** — {one-line description, or omit if only two were considered}
22
+
23
+ ## Chosen option
24
+ **{Option name}** — because {one-sentence rationale tied to a driver above} [explicit|implied|inferred|missing]
25
+
26
+ ## Consequences / trade-offs
27
+ - ✅ {what becomes easier} [explicit|implied|inferred|missing]
28
+ - ⚠️ {acceptable trade-off}
29
+ - ❌ {what becomes harder or constrains future choices}
30
+
31
+ ## Format hint
32
+ {`MADR` (default) | `Nygard` (if source frames it as a simple decision)}
33
+
34
+ ## Numbering hint
35
+ {ADR directory mentioned in source, e.g. `docs/adr/` — or `unknown` so adr-generator asks}
36
+
37
+ ---
38
+
39
+ ## 🚩 Missing for downstream
40
+ - {field: why it matters to adr-generator}
41
+ - {e.g. "Only 1 option captured — adr-generator requires ≥2 considered options"}
@@ -0,0 +1,35 @@
1
+ # Brief: Decision Log
2
+
3
+ > Target downstream skill: `decision-log`
4
+
5
+ This brief is lightweight — most of `decision-log`'s work is *its own* extraction. `brief-intake` mostly normalizes the source before handing it over.
6
+
7
+ ## Source
8
+ - **Type:** {Slack thread | meeting transcript | email chain | Notion page | mixed} [explicit|implied|inferred|missing]
9
+ - **Date of meeting / thread:** {YYYY-MM-DD} [explicit|implied|inferred|missing]
10
+ - **Attendees / participants:** {names if stated, "unknown" otherwise} [explicit|implied|inferred|missing]
11
+ - **Length:** {word count or minutes if known} [inferred]
12
+
13
+ ## Scope the user wants extracted
14
+ - [ ] Decisions
15
+ - [ ] Action items
16
+ - [ ] Open questions
17
+ - [ ] Risks raised
18
+
19
+ (Default: all four if user didn't specify.)
20
+
21
+ ## Today's date
22
+ {YYYY-MM-DD} — needed for converting relative dates ("next Friday", "EOQ") to absolute. [explicit]
23
+
24
+ ## Sprint / fiscal context
25
+ - **Current sprint ends:** {YYYY-MM-DD} [explicit|implied|inferred|missing]
26
+ - **Quarter ends:** {YYYY-MM-DD} [explicit|implied|inferred|missing]
27
+
28
+ ## Cleaned source
29
+ {Paste the source with the obvious noise stripped — greetings, off-topic banter, emoji-only messages. Keep ambiguous parts; decision-log decides what's load-bearing.}
30
+
31
+ ---
32
+
33
+ ## 🚩 Missing for downstream
34
+ - {e.g. "No date — decision-log can't convert 'Friday' to an absolute date"}
35
+ - {e.g. "Attendees unknown — owners can't be attributed to names"}
@@ -0,0 +1,43 @@
1
+ # Brief: Deck
2
+
3
+ > Target downstream skills: `slide-outliner` → `deck-builder` (and `audience-profile` for the structural rules)
4
+
5
+ ## Topic / working title
6
+ {One line} [explicit|implied|inferred|missing]
7
+ > "{verbatim snippet}"
8
+
9
+ ## Audience
10
+ - **Free-form description from source:** {as quoted} [explicit|implied|inferred|missing]
11
+ - **Mapped archetype:** {exec | board | technical | sales | investor | internal | partner | customer} [inferred]
12
+ - **If mixed audience:** least-technical archetype above + appendix for the rest
13
+
14
+ ## Time budget
15
+ - **Speaking time:** {minutes} [explicit|implied|inferred|missing]
16
+ - **Reading time (if pre-read):** {minutes} [explicit|implied|inferred|missing]
17
+ - **Implied slide count:** {derived from time × audience archetype}
18
+
19
+ ## The one thing the audience should leave with
20
+ {Single sentence — the headline message} [explicit|implied|inferred|missing]
21
+
22
+ ## Key messages (3–5)
23
+ 1. {Message} [explicit|implied|inferred|missing]
24
+ 2. {Message}
25
+ 3. {Message}
26
+
27
+ ## Evidence available
28
+ - **Quantified data:** {numbers the source provides — for `big_number` slides} [explicit|implied|inferred|missing]
29
+ - **Quotes:** {customer / exec / analyst quotes for `quote` slides} [explicit|implied|inferred|missing]
30
+ - **Diagrams:** {existing diagrams that should be embedded} [explicit|implied|inferred|missing]
31
+
32
+ ## Brand / palette
33
+ - **Palette source:** {named preset | hex values | "use our brand colors"} [explicit|implied|inferred|missing]
34
+ - **Specific colors mentioned:** {hex / role} [explicit|implied|inferred|missing]
35
+
36
+ ## Constraints
37
+ - {e.g. "no logos other than ours", "must include compliance disclaimer", "30s pre-roll for the cover"} [explicit|implied|inferred|missing]
38
+
39
+ ---
40
+
41
+ ## 🚩 Missing for downstream
42
+ - {e.g. "Audience not specified — deck-builder will refuse to start"}
43
+ - {e.g. "No palette — deck-builder will ask before building"}
@@ -0,0 +1,48 @@
1
+ # Brief: Design Doc
2
+
3
+ > Target downstream skill: `design-doc`
4
+
5
+ ## What we're building
6
+ {One sentence} [explicit|implied|inferred|missing]
7
+ > "{verbatim snippet}"
8
+
9
+ ## Who's affected
10
+ - **Users / callers:** {who consumes this} [explicit|implied|inferred|missing]
11
+ - **Teams:** {who owns or depends on it}
12
+ - **Systems:** {upstream/downstream services}
13
+
14
+ ## Why now (forcing function)
15
+ {What changed? Outage, regulatory, scaling cliff, competitor, deadline} [explicit|implied|inferred|missing]
16
+ > "{verbatim snippet}"
17
+
18
+ ## Goals
19
+ - {Goal 1} [explicit|implied|inferred|missing]
20
+ - {Goal 2}
21
+ - {Goal 3}
22
+
23
+ ## Non-goals
24
+ - {Real non-goal — something a reasonable reader might assume you *are* doing} [explicit|implied|inferred|missing]
25
+ - {Another non-goal}
26
+
27
+ ## Constraints
28
+ - {Hard constraint — tech, regulatory, budget, timeline} [explicit|implied|inferred|missing]
29
+ - {Soft constraint}
30
+
31
+ ## Alternatives the source mentions
32
+ - {Alternative 1 — and why-not if stated} [explicit|implied|inferred|missing]
33
+ - {Alternative 2}
34
+
35
+ ## Risks raised in the source
36
+ - {Risk — and any proposed mitigation} [explicit|implied|inferred|missing]
37
+
38
+ ## Open questions
39
+ - {Question — and who should answer if stated} [explicit|implied|inferred|missing]
40
+
41
+ ## Target length
42
+ {1-pager | 2–5 pages (default) | longer with explicit reason}
43
+
44
+ ---
45
+
46
+ ## 🚩 Missing for downstream
47
+ - {field: why it matters}
48
+ - {e.g. "No 'why now' captured — design-doc refuses to draft without a forcing function"}
@@ -0,0 +1,47 @@
1
+ # Brief: Exec Summary
2
+
3
+ > Target downstream skill: `exec-summary`
4
+
5
+ ## The Ask
6
+ {One line — what decision / approval / resource are we requesting?} [explicit|implied|inferred|missing]
7
+ > "{verbatim snippet}"
8
+
9
+ ## Audience
10
+ - **Role:** {VP / C-suite / board / partner CTO / steering committee} [explicit|implied|inferred|missing]
11
+ - **Technical depth:** {none / light / fluent} [explicit|implied|inferred|missing]
12
+ - **Reading time:** {30s / 1 min / 3 min — default 60s for a 1-pager} [explicit|implied|inferred|missing]
13
+ - **What they already know:** {context to skip} [explicit|implied|inferred|missing]
14
+
15
+ ## The project, in one sentence
16
+ {What it is — plain language, no jargon} [explicit|implied|inferred|missing]
17
+
18
+ ## Why now
19
+ {Forcing function — competitor, regulation, outage, market window} [explicit|implied|inferred|missing]
20
+ > "{verbatim snippet}"
21
+
22
+ ## Recommendation
23
+ {What you want them to agree to} [explicit|implied|inferred|missing]
24
+
25
+ ## Business impact (quantified where possible)
26
+ - **Revenue:** {$X ARR / $Y new revenue / 0 if n/a} [explicit|implied|inferred|missing]
27
+ - **Cost:** {savings or spend} [explicit|implied|inferred|missing]
28
+ - **Risk:** {what's at stake if we *don't* do this} [explicit|implied|inferred|missing]
29
+ - **Time:** {when does the impact land} [explicit|implied|inferred|missing]
30
+
31
+ ## Cost & timeline
32
+ - **Investment:** {$ / FTEs / months} [explicit|implied|inferred|missing]
33
+ - **Timeline:** {phases + dates} [explicit|implied|inferred|missing]
34
+
35
+ ## Top 3 risks (project-specific, not generic)
36
+ 1. {Risk} — mitigation: {mitigation} [explicit|implied|inferred|missing]
37
+ 2. {Risk} — mitigation: {mitigation}
38
+ 3. {Risk} — mitigation: {mitigation}
39
+
40
+ ## What we need from the audience
41
+ - {Concrete ask — money / headcount / decision / introduction} [explicit|implied|inferred|missing]
42
+
43
+ ---
44
+
45
+ ## 🚩 Missing for downstream
46
+ - {field: why it matters}
47
+ - {e.g. "No quantified business impact — exec-summary will have to use 'directional' language"}
@@ -0,0 +1,45 @@
1
+ # Brief: Generic
2
+
3
+ > Target downstream skill: _unknown_ — emit this when the user hasn't picked a next step yet.
4
+
5
+ This is the fallback shape. It's a superset of the most useful fields across all targets — the user (or you, next turn) picks the downstream skill and the relevant fields move into its specific brief.
6
+
7
+ ## One-line summary
8
+ {What is this about?} [explicit|implied|inferred|missing]
9
+ > "{verbatim snippet}"
10
+
11
+ ## Type of artifact the user might want next
12
+ {Best guess based on the source — and why}
13
+ - {e.g. "Looks like a decision being captured → adr-generator"}
14
+ - {e.g. "Looks like a runbook brief — service name + on-call mentioned"}
15
+
16
+ ## Subject
17
+ - **What it's about (object):** {service / decision / project / vendor selection} [explicit|implied|inferred|missing]
18
+ - **Who's involved:** {teams, people, customers} [explicit|implied|inferred|missing]
19
+ - **Why now:** {forcing function if any} [explicit|implied|inferred|missing]
20
+
21
+ ## Key facts (load-bearing)
22
+ - {Fact 1 — quote} [explicit|implied|inferred|missing]
23
+ - {Fact 2}
24
+ - {Fact 3}
25
+
26
+ ## Decisions / asks present in the source
27
+ - {Anything that looks like a decision or an ask} [explicit|implied|inferred|missing]
28
+
29
+ ## Open questions / unknowns
30
+ - {Things explicitly unresolved in the source} [explicit|implied|inferred|missing]
31
+
32
+ ## Dates / deadlines
33
+ - {Date → what it's tied to (absolute, with `(implied)` if computed)} [explicit|implied|inferred|missing]
34
+
35
+ ## Names / owners
36
+ - {Name → role / responsibility} [explicit|implied|inferred|missing]
37
+
38
+ ## Numbers / metrics
39
+ - {Number → what it measures} [explicit|implied|inferred|missing]
40
+
41
+ ---
42
+
43
+ ## 🚩 Next step
44
+ Pick a downstream skill, then run `brief-intake` again with that target to get the precisely-shaped brief. Suggested:
45
+ - {Skill name} — because {reason from this source}