spectoflow 0.17.5 → 0.18.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.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: propose-customizations
3
+ description: The "Auto" mode — analyze the project and propose concrete, justified dashboard/skill/agent candidates instead of requiring a description upfront.
4
+ capability: customization
5
+ inputs: Which kind was requested (dashboard, skill, or agent), and the project's specs, plans, code, and existing agents/skills/dashboards.
6
+ outputs: A short, concrete, justified list of candidates posted to the group chat, each pickable to hand off to generate-dashboard/generate-skill/generate-agent.
7
+ standard: Continuous Discovery (opportunity framing) applied to framework tooling
8
+ ---
9
+ # Propose customizations
10
+
11
+ Give a user who doesn't yet know exactly what to ask for a short, concrete, justified list of
12
+ dashboards/skills/agents worth adding to *this* project — instead of an empty text box.
13
+
14
+ ## When to use
15
+
16
+ Whenever the Customize page's "Auto" button is used (for any of the three kinds), or the user asks
17
+ directly ("what dashboards should I have?", "what skills am I missing?", "suggest an agent"). Always
18
+ scoped to exactly **one kind** per run — dashboard, skill, or agent — never all three mixed into one
19
+ list; if the trigger doesn't say which, ask (one question, per the usual clarify discipline).
20
+
21
+ ## Method
22
+
23
+ 1. **Read the project as evidence, not as a checklist to fill.** Depending on the kind:
24
+ - *Dashboards*: read `specs/*.md`, `plans/*.md`, and skim the codebase's shape (what kind of
25
+ project — app/infra/data/study, per `.spectoflow/capabilities.md`'s project-type table) for
26
+ things worth a dedicated view — an architecture doc with no visual summary, a security review
27
+ skill producing findings nobody dashboards, a spec whose acceptance criteria aren't tracked
28
+ anywhere visible.
29
+ - *Skills*: read `.spectoflow/agents/*.md` and `.spectoflow/skills/*` for capability gaps — a
30
+ capability the project type implies (per `.spectoflow/capabilities.md`) but has no matching
31
+ skill, or a recurring need visible in `plans/*.md`'s task titles/comments that no current skill
32
+ covers.
33
+ - *Agents*: read the current roster for capabilities with no owner, or a distinct, recurring
34
+ responsibility that keeps getting bolted onto an unrelated agent's plate.
35
+ 2. **Frame each candidate as an opportunity, not a feature list.** For each one, state: what gap it
36
+ fills, why it matters *for this project specifically* (cite the actual file/line/pattern that
37
+ justifies it — never a generic "every project needs this"), and a one-line sketch of what it would
38
+ contain/do. Three to five candidates is the right range — fewer if the project genuinely doesn't
39
+ support more, never padded to hit a round number.
40
+ 3. **Rank by leverage, not by ease.** Lead with the candidate that would most help *this* project's
41
+ actual work, not the one that's fastest to generate.
42
+ 4. **Post the list to the group chat**, one message per candidate plus a closing prompt, and wait —
43
+ this skill's job ends at proposing; handing a picked candidate to `generate-dashboard`,
44
+ `generate-skill`, or `generate-agent` is the next step, triggered by the user's choice.
45
+
46
+ ## Output contract
47
+
48
+ - No file is written by this skill — it only posts to the group chat.
49
+ - Each candidate reported via the `::spectoflow` sentinel so the Customize page can render them as
50
+ pickable cards:
51
+
52
+ ```
53
+ ::spectoflow role=customization kind=candidate msg=<kind>|<short id>|<title>|<one-line why, citing the actual project evidence>
54
+ ::spectoflow role=customization kind=done msg=<n> <kind> candidates proposed — pick one to generate it
55
+ ```
56
+
57
+ ## Quality bar
58
+
59
+ - [ ] Every candidate cites concrete evidence from *this* project (a real file, pattern, or gap) —
60
+ never a generic "every project needs X".
61
+ - [ ] Exactly one kind (dashboard, skill, or agent) proposed per run, matching the trigger.
62
+ - [ ] 3-5 candidates, ranked by leverage to this project, not by generation ease.
63
+ - [ ] No file was written — this skill only proposes; generation happens in a follow-up run of the
64
+ matching `generate-*` skill once the user picks one.
65
+
66
+ ## References
67
+
68
+ - Teresa Torres, *Continuous Discovery Habits* (Product Talk) — opportunity framing applied here to
69
+ framework tooling instead of product features: name the gap, ground it in evidence, before jumping
70
+ to a solution. https://www.producttalk.org/continuous-discovery-habits-book/
71
+ - `.spectoflow/capabilities.md` — the capability palette and project-type table this skill reads to
72
+ spot gaps.