arcane-cli 0.39.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -1
- package/dist/assets/.agents/skills/spell-address-review/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-adopt-docs/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-arcane-version/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-architect/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-brainstorm/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-bug/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-bump/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-check-drift/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-close-session/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-commit-work/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-compliance/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-create-pull-request/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-document/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-dotnet-expert/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-eas-store-deploy/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-enchant/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-explain-concept/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-feedback/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-full-cycle/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-generate-bot-icons/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-implement/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-make-discoverable/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-manifest/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-open-session/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-plan/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-present-arcane/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-product-review/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-review/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-review-batch/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-save-idea/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-scope/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-scry/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-security-review/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-ship/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-status/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-suggest-feature/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-summon-venture/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-sync-pull-request/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-test/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-todo/SKILL.md +1 -1
- package/dist/assets/.agents/skills/spell-verification-ledger/SKILL.md +1 -1
- package/dist/assets/.arcane/governance/development-methodology.md +6 -6
- package/dist/assets/.arcane/governance/git-conventions.md +2 -2
- package/dist/assets/.arcane/governance/portable-bootstrap.md +1 -0
- package/dist/assets/.arcane/governance/product-excellence-standards.md +1 -1
- package/dist/assets/.arcane/governance/spell-authoring-standards.md +9 -1
- package/dist/assets/.arcane/governance/universal-agent-rules.md +5 -3
- package/dist/assets/.arcane/spells/spell-address-review.md +115 -0
- package/dist/assets/.arcane/spells/spell-adopt-docs.md +158 -0
- package/dist/assets/.arcane/spells/spell-arcane-version.md +87 -0
- package/dist/assets/.arcane/spells/spell-architect.md +117 -0
- package/dist/assets/.arcane/spells/spell-brainstorm.md +125 -0
- package/dist/assets/.arcane/spells/spell-bug.md +123 -0
- package/dist/assets/.arcane/spells/spell-bump.md +82 -0
- package/dist/assets/.arcane/spells/spell-check-drift.md +118 -0
- package/dist/assets/.arcane/spells/spell-close-session.md +266 -0
- package/dist/assets/.arcane/spells/spell-commit-work.md +279 -0
- package/dist/assets/.arcane/spells/spell-compliance.md +130 -0
- package/dist/assets/.arcane/spells/spell-create-pull-request.md +224 -0
- package/dist/assets/.arcane/spells/spell-document.md +84 -0
- package/dist/assets/.arcane/spells/spell-dotnet-expert.md +118 -0
- package/dist/assets/.arcane/spells/spell-eas-store-deploy.md +254 -0
- package/dist/assets/.arcane/spells/spell-enchant.md +386 -0
- package/dist/assets/.arcane/spells/spell-explain-concept.md +70 -0
- package/dist/assets/.arcane/spells/spell-feedback.md +138 -0
- package/dist/assets/.arcane/spells/spell-full-cycle.md +253 -0
- package/dist/assets/.arcane/spells/spell-generate-bot-icons.md +85 -0
- package/dist/assets/.arcane/spells/spell-implement.md +109 -0
- package/dist/assets/.arcane/spells/spell-make-discoverable.md +293 -0
- package/dist/assets/.arcane/spells/spell-manifest.md +148 -0
- package/dist/assets/.arcane/spells/spell-open-session.md +154 -0
- package/dist/assets/.arcane/spells/spell-plan.md +160 -0
- package/dist/assets/.arcane/spells/spell-present-arcane.md +189 -0
- package/dist/assets/.arcane/spells/spell-product-review.md +98 -0
- package/dist/assets/.arcane/spells/spell-review-batch.md +113 -0
- package/dist/assets/.arcane/spells/spell-review.md +142 -0
- package/dist/assets/.arcane/spells/spell-save-idea.md +117 -0
- package/dist/assets/.arcane/spells/spell-scope.md +266 -0
- package/dist/assets/.arcane/spells/spell-scry.md +124 -0
- package/dist/assets/.arcane/spells/spell-security-review.md +152 -0
- package/dist/assets/.arcane/spells/spell-ship.md +106 -0
- package/dist/assets/.arcane/spells/spell-status.md +86 -0
- package/dist/assets/.arcane/spells/spell-suggest-feature.md +122 -0
- package/dist/assets/.arcane/spells/spell-summon-venture.md +110 -0
- package/dist/assets/.arcane/spells/spell-sync-pull-request.md +161 -0
- package/dist/assets/.arcane/spells/spell-test.md +88 -0
- package/dist/assets/.arcane/spells/spell-todo.md +166 -0
- package/dist/assets/.arcane/spells/spell-verification-ledger.md +102 -0
- package/dist/assets/.claude/commands/spell-address-review.md +2 -2
- package/dist/assets/.claude/commands/spell-adopt-docs.md +2 -2
- package/dist/assets/.claude/commands/spell-arcane-version.md +2 -2
- package/dist/assets/.claude/commands/spell-architect.md +2 -2
- package/dist/assets/.claude/commands/spell-brainstorm.md +2 -2
- package/dist/assets/.claude/commands/spell-bug.md +2 -2
- package/dist/assets/.claude/commands/spell-bump.md +2 -2
- package/dist/assets/.claude/commands/spell-check-drift.md +2 -2
- package/dist/assets/.claude/commands/spell-close-session.md +2 -2
- package/dist/assets/.claude/commands/spell-commit-work.md +2 -2
- package/dist/assets/.claude/commands/spell-compliance.md +2 -2
- package/dist/assets/.claude/commands/spell-create-pull-request.md +2 -2
- package/dist/assets/.claude/commands/spell-document.md +2 -2
- package/dist/assets/.claude/commands/spell-dotnet-expert.md +2 -2
- package/dist/assets/.claude/commands/spell-eas-store-deploy.md +2 -2
- package/dist/assets/.claude/commands/spell-enchant.md +2 -2
- package/dist/assets/.claude/commands/spell-explain-concept.md +2 -2
- package/dist/assets/.claude/commands/spell-feedback.md +2 -2
- package/dist/assets/.claude/commands/spell-full-cycle.md +2 -2
- package/dist/assets/.claude/commands/spell-generate-bot-icons.md +2 -2
- package/dist/assets/.claude/commands/spell-implement.md +2 -2
- package/dist/assets/.claude/commands/spell-make-discoverable.md +2 -2
- package/dist/assets/.claude/commands/spell-manifest.md +2 -2
- package/dist/assets/.claude/commands/spell-open-session.md +2 -2
- package/dist/assets/.claude/commands/spell-plan.md +2 -2
- package/dist/assets/.claude/commands/spell-present-arcane.md +2 -2
- package/dist/assets/.claude/commands/spell-product-review.md +2 -2
- package/dist/assets/.claude/commands/spell-review-batch.md +2 -2
- package/dist/assets/.claude/commands/spell-review.md +2 -2
- package/dist/assets/.claude/commands/spell-save-idea.md +2 -2
- package/dist/assets/.claude/commands/spell-scope.md +2 -2
- package/dist/assets/.claude/commands/spell-scry.md +2 -2
- package/dist/assets/.claude/commands/spell-security-review.md +2 -2
- package/dist/assets/.claude/commands/spell-ship.md +2 -2
- package/dist/assets/.claude/commands/spell-status.md +2 -2
- package/dist/assets/.claude/commands/spell-suggest-feature.md +2 -2
- package/dist/assets/.claude/commands/spell-summon-venture.md +2 -2
- package/dist/assets/.claude/commands/spell-sync-pull-request.md +2 -2
- package/dist/assets/.claude/commands/spell-test.md +2 -2
- package/dist/assets/.claude/commands/spell-todo.md +2 -2
- package/dist/assets/.claude/commands/spell-verification-ledger.md +2 -2
- package/dist/assets/.github/instructions/agent-output.instructions.md +14 -13
- package/dist/assets/.github/prompts/spell-address-review.prompt.md +1 -107
- package/dist/assets/.github/prompts/spell-adopt-docs.prompt.md +1 -150
- package/dist/assets/.github/prompts/spell-arcane-version.prompt.md +1 -79
- package/dist/assets/.github/prompts/spell-architect.prompt.md +1 -109
- package/dist/assets/.github/prompts/spell-brainstorm.prompt.md +1 -117
- package/dist/assets/.github/prompts/spell-bug.prompt.md +1 -115
- package/dist/assets/.github/prompts/spell-bump.prompt.md +1 -74
- package/dist/assets/.github/prompts/spell-check-drift.prompt.md +1 -110
- package/dist/assets/.github/prompts/spell-close-session.prompt.md +1 -258
- package/dist/assets/.github/prompts/spell-commit-work.prompt.md +1 -270
- package/dist/assets/.github/prompts/spell-compliance.prompt.md +1 -122
- package/dist/assets/.github/prompts/spell-create-pull-request.prompt.md +1 -215
- package/dist/assets/.github/prompts/spell-document.prompt.md +1 -76
- package/dist/assets/.github/prompts/spell-dotnet-expert.prompt.md +1 -110
- package/dist/assets/.github/prompts/spell-eas-store-deploy.prompt.md +1 -246
- package/dist/assets/.github/prompts/spell-enchant.prompt.md +1 -378
- package/dist/assets/.github/prompts/spell-explain-concept.prompt.md +1 -62
- package/dist/assets/.github/prompts/spell-feedback.prompt.md +1 -130
- package/dist/assets/.github/prompts/spell-full-cycle.prompt.md +1 -245
- package/dist/assets/.github/prompts/spell-generate-bot-icons.prompt.md +1 -77
- package/dist/assets/.github/prompts/spell-implement.prompt.md +1 -101
- package/dist/assets/.github/prompts/spell-make-discoverable.prompt.md +1 -285
- package/dist/assets/.github/prompts/spell-manifest.prompt.md +1 -140
- package/dist/assets/.github/prompts/spell-open-session.prompt.md +1 -146
- package/dist/assets/.github/prompts/spell-plan.prompt.md +1 -152
- package/dist/assets/.github/prompts/spell-present-arcane.prompt.md +1 -181
- package/dist/assets/.github/prompts/spell-product-review.prompt.md +1 -90
- package/dist/assets/.github/prompts/spell-review-batch.prompt.md +1 -105
- package/dist/assets/.github/prompts/spell-review.prompt.md +1 -134
- package/dist/assets/.github/prompts/spell-save-idea.prompt.md +1 -109
- package/dist/assets/.github/prompts/spell-scope.prompt.md +1 -258
- package/dist/assets/.github/prompts/spell-scry.prompt.md +1 -116
- package/dist/assets/.github/prompts/spell-security-review.prompt.md +1 -144
- package/dist/assets/.github/prompts/spell-ship.prompt.md +1 -98
- package/dist/assets/.github/prompts/spell-status.prompt.md +1 -78
- package/dist/assets/.github/prompts/spell-suggest-feature.prompt.md +1 -114
- package/dist/assets/.github/prompts/spell-summon-venture.prompt.md +1 -102
- package/dist/assets/.github/prompts/spell-sync-pull-request.prompt.md +1 -152
- package/dist/assets/.github/prompts/spell-test.prompt.md +1 -80
- package/dist/assets/.github/prompts/spell-todo.prompt.md +1 -158
- package/dist/assets/.github/prompts/spell-verification-ledger.prompt.md +1 -94
- package/dist/index.js +1073 -246
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- /package/dist/assets/{.github/prompts → .arcane/spells}/_fragments/tracking-mode-declaration.md +0 -0
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Enchant
|
|
3
|
+
description: "Enchant a PRD from functional to exceptional — proactively enhance features, UX, accessibility, security, and performance using a research lens and a marketing/brand lens"
|
|
4
|
+
claude_description: Use PROACTIVELY when a PRD should be enhanced — UX, accessibility, security, performance — before implementation.
|
|
5
|
+
argument-hint: "Path to PRD, pasted PRD content, or tracker work item ID (e.g., 'Enchant PRD.md for {BUSINESS_NAME} <feature> dashboard')"
|
|
6
|
+
agent: agent
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
- This spell takes an existing PRD and enchants it to production-grade quality.
|
|
12
|
+
- It proactively identifies missing features, UX gaps, accessibility issues, performance targets, and security requirements that the original PRD didn't specify.
|
|
13
|
+
- Applies two analytical lenses: a **research lens** (competitive analysis, industry standards) and a **marketing/brand lens** (brand, UX, first-impression review). In the default Arcane roster these map to the Alexander and Circe personas; other orgs map their own — see [agent-policies](../../.arcane/governance/agent-policies.md) / [naming-conventions](../../.arcane/governance/naming-conventions.md).
|
|
14
|
+
- Output: Enhanced PRD with `[ENCHANTED]`-tagged additions, before/after quality scorecard, and research summaries.
|
|
15
|
+
- Use this between `spell-plan` and `spell-architect` (or `spell-scope` for large PRDs). It **consumes** a drafted PRD and **feeds** an architecture/scoping spell; it does not author a PRD from scratch (that is `spell-plan`) nor implement one (`spell-implement`).
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
Enchant the provided PRD to exceptional quality.
|
|
20
|
+
|
|
21
|
+
Use these files for context. All are optional — if a file is absent, fall back as noted and continue rather than aborting:
|
|
22
|
+
|
|
23
|
+
- [governance/product-excellence-standards.md](../../.arcane/governance/product-excellence-standards.md) — Quality dimensions, PRD Quality Scorecard, scoring rubric (Bronze / Silver / Gold). **If missing:** warn the user that the canonical scorecard was not found, then proceed with the embedded dimension list (Requirements Completeness, UX, Accessibility, Performance, Security, Responsive Design, Competitive Differentiation) and default to the **Public MVP** profile.
|
|
24
|
+
- [governance/development-methodology.md](../../.arcane/governance/development-methodology.md) — Spell Loop methodology, story sizing rules. **If missing:** treat story sizing as advisory and proceed.
|
|
25
|
+
- [governance/testing-standards.md](../../.arcane/governance/testing-standards.md) — Testing frameworks and coverage thresholds. **If missing:** omit framework-specific coverage targets from acceptance criteria.
|
|
26
|
+
- [security/threat-model.md](../../security/threat-model.md) — Active threat model. **If missing:** apply generic OWASP-style security baselines for the Security dimension.
|
|
27
|
+
- [agents/agent-policies.md](../../.arcane/governance/agent-policies.md) / [governance/naming-conventions.md](../../.arcane/governance/naming-conventions.md) — Agent roster and persona naming. **If missing:** apply the two lenses (research, marketing/brand) without naming personas.
|
|
28
|
+
- [DECISIONS.md](../../DECISIONS.md) — Existing ADRs to respect. **If missing:** assume no binding ADR constraints.
|
|
29
|
+
- [project.md](../../project.md) — Project goals and business context. **If missing:** infer business context from the PRD itself and flag any assumptions.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Workflow
|
|
34
|
+
|
|
35
|
+
### 1. PRD Intake
|
|
36
|
+
|
|
37
|
+
Accept the PRD from one of these input sources:
|
|
38
|
+
|
|
39
|
+
| Source | Format | How to fetch |
|
|
40
|
+
|--------|--------|--------------|
|
|
41
|
+
| **File path** | `PRD.md` or any markdown file | Read the file directly |
|
|
42
|
+
| **Pasted content** | Inline text in the prompt | Use as-is |
|
|
43
|
+
| **Tracker work item ID** | `#508` or `508` with a tracker reference | Respect `tracking_mode` and detect the provider (see below), then fetch the work item and extract its title, description, and acceptance criteria |
|
|
44
|
+
|
|
45
|
+
If the input is a tracker work item ID:
|
|
46
|
+
1. **Determine tracking mode and provider.** Read `tracking_mode` (internal/external) from `.arcane.json` or PRD frontmatter, and detect the configured tracker provider rather than assuming one. The shared tracker-resolution rules live in [governance/development-methodology.md](../../.arcane/governance/development-methodology.md) — follow them rather than hard-coding a single provider.
|
|
47
|
+
- For an **Azure DevOps** provider, fetch via `az boards work-item show --id {id} --org https://dev.azure.com/{ADO_ORG} --output json` and extract `System.Description`, `Microsoft.VSTS.Common.AcceptanceCriteria`, and `System.Title`. Resolve `{ADO_ORG}` (and `{ADO_PROJECT}` if needed) from `.arcane.json` or the PRD frontmatter; **if unset, ask the user** rather than assuming a default.
|
|
48
|
+
- For other providers (e.g. a GitHub issue), use the provider's equivalent fetch and map title / body / acceptance-criteria fields accordingly.
|
|
49
|
+
2. If the work item has child items, fetch those too — they may contain additional requirements.
|
|
50
|
+
3. If the work item description contains a URL to an external PRD (e.g., a gist, wiki page, or shared document), fetch that content.
|
|
51
|
+
4. Combine all content into a single PRD view before proceeding.
|
|
52
|
+
|
|
53
|
+
Read the full PRD. Identify:
|
|
54
|
+
- **Feature name** and business context
|
|
55
|
+
- **Target repo** and tech stack
|
|
56
|
+
- **Current requirement count** and acceptance criteria count
|
|
57
|
+
- **What quality dimensions are already addressed vs missing**
|
|
58
|
+
|
|
59
|
+
**Quality Profile Selection:** Ask the user which quality profile to target (see `governance/product-excellence-standards.md § Quality Profiles`):
|
|
60
|
+
|
|
61
|
+
| Profile | Best For | Default? |
|
|
62
|
+
|---------|----------|----------|
|
|
63
|
+
| **Internal Tool** | Dashboards, CLIs, admin panels, single-user tools | |
|
|
64
|
+
| **Public MVP** | First public launch, market validation, early users | ✅ Default |
|
|
65
|
+
| **Production SaaS** | Revenue-generating, public-facing, scaled products | |
|
|
66
|
+
| **Custom** | User picks target tier per dimension | |
|
|
67
|
+
|
|
68
|
+
If the user doesn't specify, use **Public MVP**. State the selected profile before proceeding.
|
|
69
|
+
|
|
70
|
+
### 2. Quality Audit (Scorecard)
|
|
71
|
+
|
|
72
|
+
Score the PRD against every dimension in `governance/product-excellence-standards.md`.
|
|
73
|
+
|
|
74
|
+
Use the selected quality profile's target matrix to determine the **gap** for each dimension:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
## Quality Scorecard — Before Enchantment
|
|
78
|
+
|
|
79
|
+
**Profile:** [selected profile]
|
|
80
|
+
|
|
81
|
+
| Dimension | Current | Target | Gap | Notes |
|
|
82
|
+
|-----------|---------|--------|-----|-------|
|
|
83
|
+
| Requirements Completeness | 🥉 / 🥈 / 🥇 | [from profile] | [tiers to close] | [specific gaps] |
|
|
84
|
+
| User Experience (UX) | 🥉 / 🥈 / 🥇 | [from profile] | | [specific gaps] |
|
|
85
|
+
| Accessibility | 🥉 / 🥈 / 🥇 | [from profile] | | [specific gaps] |
|
|
86
|
+
| Performance | 🥉 / 🥈 / 🥇 | [from profile] | | [specific gaps] |
|
|
87
|
+
| Security | 🥉 / 🥈 / 🥇 | [from profile] | | [specific gaps] |
|
|
88
|
+
| Responsive Design | 🥉 / 🥈 / 🥇 | [from profile] | | [specific gaps] |
|
|
89
|
+
| Competitive Differentiation | 🥉 / 🥈 / 🥇 | [from profile] | | [specific gaps] |
|
|
90
|
+
| **Overall** | **🥉 / 🥈 / 🥇** | | | |
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For each dimension where the current score is **below the profile's target**, identify the **specific gaps** that must be closed. These gaps drive the Must-Add tier. For dimensions already at target, identify what would lift them one tier higher (Should-Add).
|
|
94
|
+
|
|
95
|
+
### 3. Research Phase (Research Lens)
|
|
96
|
+
|
|
97
|
+
Apply the **research lens** (in the default Arcane roster this is the Alexander / Research & Backlog Analyst persona — see [agent-policies](../../.arcane/governance/agent-policies.md) / [naming-conventions](../../.arcane/governance/naming-conventions.md); other orgs map their own analyst). Conduct a thorough analysis:
|
|
98
|
+
|
|
99
|
+
#### 3a. Competitive Analysis
|
|
100
|
+
- Identify the top 3 alternatives/competitors for this type of app
|
|
101
|
+
- What do they do well that this PRD doesn't specify?
|
|
102
|
+
- What are their weaknesses that this app can capitalize on?
|
|
103
|
+
- What features do users of these alternatives consistently request?
|
|
104
|
+
|
|
105
|
+
#### 3b. Industry UX Patterns
|
|
106
|
+
- What are the established UX patterns for this category of app?
|
|
107
|
+
- Are there design system conventions this PRD should follow (Material, Fluent, etc.)?
|
|
108
|
+
- What interaction patterns do users expect as standard?
|
|
109
|
+
|
|
110
|
+
#### 3c. Accessibility Audit
|
|
111
|
+
- What WCAG 2.1 AA requirements are missing from the PRD?
|
|
112
|
+
- Are there accessibility features specific to this app category (e.g., data tables need row headers)?
|
|
113
|
+
- What assistive technology considerations apply?
|
|
114
|
+
|
|
115
|
+
#### 3d. Technology Trends
|
|
116
|
+
- Are there modern approaches or frameworks that would improve the implementation?
|
|
117
|
+
- Are there emerging standards the PRD should adopt early?
|
|
118
|
+
- Are there performance optimization techniques specific to this stack?
|
|
119
|
+
|
|
120
|
+
#### 3e. User Expectations
|
|
121
|
+
- What do users of similar apps consider table-stakes features?
|
|
122
|
+
- What are common frustrations with alternative apps that this PRD could address?
|
|
123
|
+
- What would a power user expect that a casual user wouldn't think to request?
|
|
124
|
+
|
|
125
|
+
Document findings as (the persona name below reflects the default roster; substitute your org's analyst):
|
|
126
|
+
```markdown
|
|
127
|
+
## Research Summary (Research Lens — default: Alexander)
|
|
128
|
+
|
|
129
|
+
### Competitive Landscape
|
|
130
|
+
[findings]
|
|
131
|
+
|
|
132
|
+
### UX Pattern Analysis
|
|
133
|
+
[findings]
|
|
134
|
+
|
|
135
|
+
### Accessibility Gaps
|
|
136
|
+
[findings]
|
|
137
|
+
|
|
138
|
+
### Technology Recommendations
|
|
139
|
+
[findings]
|
|
140
|
+
|
|
141
|
+
### User Expectations
|
|
142
|
+
[findings]
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 4. Marketing & Brand Review (Marketing/Brand Lens)
|
|
146
|
+
|
|
147
|
+
Apply the **marketing/brand lens** (in the default Arcane roster this is the Circe / Marketing Strategist persona — see [agent-policies](../../.arcane/governance/agent-policies.md) / [naming-conventions](../../.arcane/governance/naming-conventions.md); other orgs map their own strategist). Evaluate the PRD from a brand and user-perception perspective:
|
|
148
|
+
|
|
149
|
+
#### 4a. First Impressions
|
|
150
|
+
- If a user saw this app for the first time with zero context, what would they think?
|
|
151
|
+
- Is the value proposition immediately clear?
|
|
152
|
+
- Does the UI convey quality and trustworthiness?
|
|
153
|
+
|
|
154
|
+
#### 4b. Value Proposition Clarity
|
|
155
|
+
- Can the app's purpose be explained in one sentence?
|
|
156
|
+
- Does the PRD define a "signature feature" that makes the app memorable?
|
|
157
|
+
- Is there a clear differentiator from alternatives?
|
|
158
|
+
|
|
159
|
+
#### 4c. Brand Consistency
|
|
160
|
+
- Does the planned UX align with the business's brand identity?
|
|
161
|
+
- Is the tone, terminology, and visual language consistent?
|
|
162
|
+
- Would this app feel like it belongs in the same family as the business's other products?
|
|
163
|
+
|
|
164
|
+
#### 4d. User Onboarding
|
|
165
|
+
- Is there a clear path from first launch to first value delivered?
|
|
166
|
+
- Does the PRD define what "activation" means (the moment the user gets value)?
|
|
167
|
+
- Are there engagement hooks that encourage return visits?
|
|
168
|
+
|
|
169
|
+
#### 4e. Delight Opportunities
|
|
170
|
+
- Where can the app surprise users with thoughtful touches?
|
|
171
|
+
- Are there moments where exceeding expectations is easy but impactful?
|
|
172
|
+
- What would make users want to recommend this app to others?
|
|
173
|
+
|
|
174
|
+
Document findings as (the persona name below reflects the default roster; substitute your org's strategist):
|
|
175
|
+
```markdown
|
|
176
|
+
## Marketing Review (Marketing/Brand Lens — default: Circe)
|
|
177
|
+
|
|
178
|
+
### First Impression Assessment
|
|
179
|
+
[findings]
|
|
180
|
+
|
|
181
|
+
### Value Proposition
|
|
182
|
+
[findings]
|
|
183
|
+
|
|
184
|
+
### Brand Alignment
|
|
185
|
+
[findings]
|
|
186
|
+
|
|
187
|
+
### Onboarding Path
|
|
188
|
+
[findings]
|
|
189
|
+
|
|
190
|
+
### Delight Opportunities
|
|
191
|
+
[findings]
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### 5. Generate Enhancement Suggestions
|
|
195
|
+
|
|
196
|
+
Based on the quality audit, the research-lens analysis, the marketing/brand-lens review, **and the selected quality profile**, produce enhancement suggestions in four priority tiers.
|
|
197
|
+
|
|
198
|
+
Tier assignment is driven by the profile's target matrix (see `governance/product-excellence-standards.md § How Profiles Drive Enhancement Tiers`):
|
|
199
|
+
|
|
200
|
+
| Tier | Rule |
|
|
201
|
+
|------|------|
|
|
202
|
+
| Must-Add | Current score is **below** the profile's target for that dimension |
|
|
203
|
+
| Should-Add | Current score **matches** the target; enhancement lifts one tier above |
|
|
204
|
+
| Could-Add | Current score **meets or exceeds** target; enhancement is aspirational |
|
|
205
|
+
| Won't-Add | Explicitly excluded regardless of profile |
|
|
206
|
+
|
|
207
|
+
**Override:** Security Bronze is always Must-Add. Accessibility gaps are always at least Should-Add.
|
|
208
|
+
|
|
209
|
+
#### Must-Add (Below Target — Must Close Gap)
|
|
210
|
+
Enhancements required to reach the profile's target tier for each dimension. These aren't optional — the profile demands them.
|
|
211
|
+
|
|
212
|
+
*Example (Public MVP): UX is Bronze but target is Gold → loading states, error states, empty states, onboarding are all Must-Add.*
|
|
213
|
+
|
|
214
|
+
#### Should-Add (At Target — Stretch One Tier)
|
|
215
|
+
Enhancements that lift a dimension one tier above the profile's target. Not blocking the profile's quality bar but enchanting toward the ceiling.
|
|
216
|
+
|
|
217
|
+
*Example (Internal Tool): UX is Silver (matches target) → dark mode, micro-interactions become Should-Add.*
|
|
218
|
+
|
|
219
|
+
#### Could-Add (Above Target — Aspirational)
|
|
220
|
+
Enhancements for dimensions already meeting or exceeding the target. Premium polish that creates delight.
|
|
221
|
+
|
|
222
|
+
*Example (Internal Tool): Requirements already at Silver (target) → traceability matrix, open questions tracking become Could-Add.*
|
|
223
|
+
|
|
224
|
+
#### Won't-Add (Explicitly Excluded)
|
|
225
|
+
Items considered but rejected, with clear rationale. This prevents future scope creep around "should we add X?"
|
|
226
|
+
|
|
227
|
+
*Example: Offline mode (not applicable for real-time dashboard), multi-language support (single market for now).*
|
|
228
|
+
|
|
229
|
+
For each enhancement:
|
|
230
|
+
```markdown
|
|
231
|
+
- **[ENCHANTED]** [Enhancement title]
|
|
232
|
+
- **Rationale:** [Why this matters — reference research or standards]
|
|
233
|
+
- **Source:** Research lens / Marketing-brand lens / Quality scorecard gap / Industry standard
|
|
234
|
+
- **Impact on scope:** Minimal / Moderate / Significant
|
|
235
|
+
- **Acceptance criteria:** [Testable criterion]
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 6. Scope Budget Check
|
|
239
|
+
|
|
240
|
+
⚠️ **Critical guard against scope creep.**
|
|
241
|
+
|
|
242
|
+
After generating all enhancements, calculate:
|
|
243
|
+
- **Original PRD scope:** [N requirements, estimated M stories]
|
|
244
|
+
- **Enchantd PRD scope:** [N+X requirements, estimated M+Y stories]
|
|
245
|
+
- **Scope increase ratio:** [percentage or multiplier]
|
|
246
|
+
|
|
247
|
+
**If enchanted scope exceeds 2× the original:**
|
|
248
|
+
1. Flag this prominently to the user
|
|
249
|
+
2. Force prioritization — the user must choose which enhancements to keep
|
|
250
|
+
3. Recommend splitting Must-Add into the current cycle and Should-Add/Could-Add into future iterations
|
|
251
|
+
4. Never silently double the project scope
|
|
252
|
+
|
|
253
|
+
Present as:
|
|
254
|
+
```markdown
|
|
255
|
+
## Scope Impact Assessment
|
|
256
|
+
|
|
257
|
+
| Metric | Original | Enchantd | Change |
|
|
258
|
+
|--------|----------|----------|--------|
|
|
259
|
+
| Requirements | N | N+X | +X |
|
|
260
|
+
| Estimated stories | M | M+Y | +Y |
|
|
261
|
+
| Scope multiplier | — | — | X.Xx |
|
|
262
|
+
|
|
263
|
+
⚠️ [Warning if > 2x, or ✅ within budget if ≤ 2x]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### 7. Produce Enhanced PRD
|
|
267
|
+
|
|
268
|
+
Generate the enchanted PRD with these characteristics:
|
|
269
|
+
|
|
270
|
+
1. **All original requirements preserved** — never remove or weaken what was already specified
|
|
271
|
+
2. **New requirements tagged `[ENCHANTED]`** — clearly distinguishable from original content
|
|
272
|
+
3. **Enhanced acceptance criteria** — original criteria enriched with edge cases
|
|
273
|
+
4. **Quality scorecard (after)** — re-scored with all enhancements included
|
|
274
|
+
5. **Research and marketing summaries** — appended as reference sections
|
|
275
|
+
6. **Scope impact assessment** — included for transparency
|
|
276
|
+
|
|
277
|
+
Structure:
|
|
278
|
+
```markdown
|
|
279
|
+
# PRD: [Feature Name] — Enchantd
|
|
280
|
+
|
|
281
|
+
## Enchantment Summary
|
|
282
|
+
- **Quality profile:** [Internal Tool / Public MVP / Production SaaS / Custom]
|
|
283
|
+
- **Original score:** [Before]
|
|
284
|
+
- **Enchantd score:** [After]
|
|
285
|
+
- **Enhancements added:** [count by tier]
|
|
286
|
+
- **Scope impact:** [multiplier]
|
|
287
|
+
|
|
288
|
+
## Problem Statement
|
|
289
|
+
[Original, enhanced if needed]
|
|
290
|
+
|
|
291
|
+
## Target Users
|
|
292
|
+
[Original, enhanced with persona details if missing]
|
|
293
|
+
|
|
294
|
+
## Requirements
|
|
295
|
+
|
|
296
|
+
### Must Have
|
|
297
|
+
- [Original requirement 1]
|
|
298
|
+
- [Original requirement 2]
|
|
299
|
+
- **[ENCHANTED]** [New must-have from enchantment]
|
|
300
|
+
|
|
301
|
+
### Should Have
|
|
302
|
+
- [Original should-haves]
|
|
303
|
+
- **[ENCHANTED]** [New should-haves from enchantment]
|
|
304
|
+
|
|
305
|
+
### Won't Have (this iteration)
|
|
306
|
+
- [Original exclusions]
|
|
307
|
+
- **[ENCHANTED]** [New explicit exclusions from enchantment]
|
|
308
|
+
|
|
309
|
+
## User Experience Requirements
|
|
310
|
+
**[ENCHANTED section if not in original]**
|
|
311
|
+
- Loading states: [specification]
|
|
312
|
+
- Error states: [specification]
|
|
313
|
+
- Empty states: [specification]
|
|
314
|
+
- Onboarding: [specification]
|
|
315
|
+
|
|
316
|
+
## Accessibility Requirements
|
|
317
|
+
**[ENCHANTED section if not in original]**
|
|
318
|
+
- [WCAG 2.1 AA requirements per product-excellence-standards]
|
|
319
|
+
|
|
320
|
+
## Performance Requirements
|
|
321
|
+
**[ENCHANTED section if not in original]**
|
|
322
|
+
- [Targets per product-excellence-standards]
|
|
323
|
+
|
|
324
|
+
## Security Requirements
|
|
325
|
+
**[ENCHANTED section if not in original]**
|
|
326
|
+
- [Requirements per product-excellence-standards]
|
|
327
|
+
|
|
328
|
+
## Responsive Design Requirements
|
|
329
|
+
**[ENCHANTED section if not in original]**
|
|
330
|
+
- [Breakpoints and adaptation rules]
|
|
331
|
+
|
|
332
|
+
## Acceptance Criteria
|
|
333
|
+
- [ ] [Original criteria — preserved]
|
|
334
|
+
- [ ] **[ENCHANTED]** [New criteria from enchantment]
|
|
335
|
+
|
|
336
|
+
## Dependencies
|
|
337
|
+
[Original + any new dependencies from enchanted requirements]
|
|
338
|
+
|
|
339
|
+
## Open Questions
|
|
340
|
+
[Original + any new questions raised by enchantment]
|
|
341
|
+
|
|
342
|
+
## Quality Scorecard
|
|
343
|
+
|
|
344
|
+
| Dimension | Before | After |
|
|
345
|
+
|-----------|--------|-------|
|
|
346
|
+
| Requirements | 🥉 | 🥇 |
|
|
347
|
+
| UX | 🥉 | 🥇 |
|
|
348
|
+
| ... | ... | ... |
|
|
349
|
+
| **Overall** | **🥉** | **🥇** |
|
|
350
|
+
|
|
351
|
+
## Research Summary (Research Lens — default: Alexander)
|
|
352
|
+
[Condensed from Step 3]
|
|
353
|
+
|
|
354
|
+
## Marketing Review (Marketing/Brand Lens — default: Circe)
|
|
355
|
+
[Condensed from Step 4]
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### 8. Present for Review
|
|
359
|
+
|
|
360
|
+
Present the enchanted PRD to the user with:
|
|
361
|
+
|
|
362
|
+
1. **Side-by-side quality score** — before and after across all dimensions
|
|
363
|
+
2. **Summary of all additions** — grouped by tier (Must-Add / Should-Add / Could-Add / Won't-Add) with rationale
|
|
364
|
+
3. **Scope impact** — clear multiplier and warning if > 2×
|
|
365
|
+
4. **Explicit ask:** "Do you want to proceed with the enchanted PRD, adjust any enhancements, or revert to the original?"
|
|
366
|
+
|
|
367
|
+
Wait for user approval before the enchanted PRD replaces the original. The user may:
|
|
368
|
+
- **Accept all** — proceed with the full enchanted PRD
|
|
369
|
+
- **Accept with cuts** — remove specific enhancements; re-run scorecard
|
|
370
|
+
- **Defer enhancements** — keep the original PRD for this cycle; log enhancements as future work items
|
|
371
|
+
- **Reject** — keep the original PRD unchanged
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Rules
|
|
376
|
+
|
|
377
|
+
- **Never remove or weaken original requirements.** Only enhance and add. The user wrote those requirements for a reason.
|
|
378
|
+
- **Every enhancement must have a rationale** tied to research findings, competitive analysis, industry standards, or the quality scorecard. No enhancements "because it would be nice."
|
|
379
|
+
- **User has final say on all additions.** This spell is a suggestions engine, not a mandate. If the user says "no dark mode," respect that.
|
|
380
|
+
- **Flag scope impact honestly.** If enhancements double the project, say so clearly. Don't bury scope creep in a long list.
|
|
381
|
+
- **Respect existing ADRs.** If an enhancement contradicts an established ADR, flag the conflict rather than silently adding it.
|
|
382
|
+
- **Be honest about unknowns.** If competitive analysis requires actual market research that can't be done in this context, flag it as a research item for the research lens (default: Alexander) to investigate separately.
|
|
383
|
+
- **Don't gold-plate for the sake of it.** If the PRD already meets the profile's targets across all dimensions, say so and move on. Not every PRD needs enchantment.
|
|
384
|
+
- **Respect the quality profile.** The profile determines what's Must-Add vs Could-Add. An Internal Tool doesn't need Gold Accessibility unless the user says so. A Production SaaS needs Gold everywhere — no shortcuts.
|
|
385
|
+
- **Security enhancement is non-negotiable.** Even if the user skips other enhancements, security gaps identified during enchantment must be flagged prominently. The user can still decide, but they must be aware. Security Bronze is always Must-Add regardless of profile.
|
|
386
|
+
- **Accessibility is a requirement, not a feature.** Accessibility gaps are always at least Should-Add regardless of profile. WCAG 2.1 AA compliance should be treated as Must-Add for Public MVP and Production SaaS profiles.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Explain Concept
|
|
3
|
+
description: "Explain a technical concept, architecture, or system behavior in a balanced way: enough technical depth to be accurate, enough plain language to be accessible. Use when: confused about how something works, need to understand a system before making decisions, want a 'teach me' breakdown."
|
|
4
|
+
claude_description: Use PROACTIVELY when the user needs a concept, architecture, or system behavior explained before deciding or building.
|
|
5
|
+
argument-hint: "Concept or question to explain (e.g., 'how does our auth middleware inject tokens?', 'what is OAuth2 PKCE flow?', 'why can't {AGENT_NAME} see the config?')"
|
|
6
|
+
agent: agent
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
- This prompt produces clear, structured explanations of technical concepts, architectures, or system behaviors.
|
|
12
|
+
- It balances technical accuracy with accessibility — no dumbing down, no jargon walls.
|
|
13
|
+
- Use this when you need to understand something before making a decision or planning implementation.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
Explain the concept, system, or behavior described in the user's prompt argument.
|
|
18
|
+
|
|
19
|
+
## Explanation Style
|
|
20
|
+
|
|
21
|
+
Follow these rules strictly:
|
|
22
|
+
|
|
23
|
+
1. **Start with the one-sentence answer.** What is it, or why does it happen? No preamble.
|
|
24
|
+
2. **Use analogies from the user's world** — relate to tools, systems, or workflows they already use (their editor, their chat/notification tooling, their own agents, their own infrastructure). Check the workspace for context about the user's setup.
|
|
25
|
+
3. **Use diagrams per rule 8** (`.arcane/governance/universal-agent-rules.md`) — Mermaid sequence diagrams for flows, flowcharts for decision trees. Don't use diagrams for simple definitions.
|
|
26
|
+
4. **Show the "so what?"** — connect the explanation to what the user can *do* with this knowledge. What decisions does it unlock? What options does it create?
|
|
27
|
+
5. **Name the moving parts** with a summary table when there are multiple components, layers, or options to compare.
|
|
28
|
+
6. **Use real examples from their system** — reference actual agent names, actual config files, actual commands. Don't use generic placeholders when specific is available.
|
|
29
|
+
7. **Flag when your explanation hits a boundary** — if something requires verification, testing, or is based on source code reading vs official docs, say so.
|
|
30
|
+
|
|
31
|
+
## Tone Calibration
|
|
32
|
+
|
|
33
|
+
- Technical jargon: **Use it, but define it inline** on first use. Example: "the dispatcher (the runtime component that routes a request to the right handler)..."
|
|
34
|
+
- Depth: **Go deep enough that the user could explain it to someone else.** If they asked "what is X?", they should walk away knowing what X is, how X works, and when X matters.
|
|
35
|
+
- Length: **Match the concept's complexity.** A simple definition gets 3-4 lines. An architecture explanation gets diagrams, tables, and flow breakdowns.
|
|
36
|
+
|
|
37
|
+
## Research First
|
|
38
|
+
|
|
39
|
+
Before explaining:
|
|
40
|
+
1. Search the workspace for relevant docs, configs, and journal entries about the topic
|
|
41
|
+
2. If the concept involves a specific tool or framework, check its config files, source, and official docs as needed
|
|
42
|
+
3. If the concept involves infrastructure or deployment, check the relevant infra, config, and ops directories in the repo
|
|
43
|
+
4. Ground the explanation in what's actually deployed, not hypothetical setups
|
|
44
|
+
|
|
45
|
+
## Output Structure
|
|
46
|
+
|
|
47
|
+
Adapt the structure to the concept — don't force every explanation into the same template. But generally:
|
|
48
|
+
|
|
49
|
+
- **One-line answer** (always)
|
|
50
|
+
- **How it works** (always — the core explanation)
|
|
51
|
+
- **Diagram** (when architecture/flow matters)
|
|
52
|
+
- **Comparison table** (when there are alternatives or multiple components)
|
|
53
|
+
- **What this means for you** (always — connect to decisions or actions)
|
|
54
|
+
|
|
55
|
+
## Rules
|
|
56
|
+
|
|
57
|
+
1. **Validate the input is a concept to explain, not a task to perform.** This spell *explains* — it does not build, fix, plan, or change anything. If the argument is empty or too vague to identify a topic (e.g. "explain this" with no referent), ask the user what they want explained before proceeding.
|
|
58
|
+
2. **Redirect action requests.** If the argument is actually a request to *do* work rather than understand it, say so and point to the right spell instead of attempting the action:
|
|
59
|
+
- "implement / build / add X" → suggest **`spell-implement`**.
|
|
60
|
+
- "fix / debug X" → suggest **`spell-bug`**.
|
|
61
|
+
- "plan / break down X" → suggest **`spell-plan`**.
|
|
62
|
+
- "design / decide between X and Y (architecture)" → suggest **`spell-architect`**.
|
|
63
|
+
- If the user genuinely wants *both* an explanation and then action, explain first, then hand off.
|
|
64
|
+
3. **Explain only — never modify.** Do not edit files, run mutating commands, or make external posts as part of an explanation. Reading and searching the workspace is expected; changing it is out of scope.
|
|
65
|
+
|
|
66
|
+
## Related Spells
|
|
67
|
+
|
|
68
|
+
- **`spell-architect`** — when the concept is a *design choice* and the user needs a decision (trade-offs, ADR), explain the landscape here, then hand off to architect to decide.
|
|
69
|
+
- **`spell-plan`** — once a concept is understood, plan turns that understanding into ordered, actionable steps.
|
|
70
|
+
- **`spell-implement`** / **`spell-bug`** — the build/fix spells this one redirects to when the request is an action rather than a question.
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell — Feedback
|
|
3
|
+
description: Collect structured feedback on AI-assistance quality and workflow friction, and append it to FEEDBACK.md for continuous improvement. Framework-shaped items can route upstream to arcane's public GitHub issues.
|
|
4
|
+
claude_description: Use PROACTIVELY when the user reports friction with AI assistance or the workflow itself, not the product being built.
|
|
5
|
+
argument-hint: Optional focus area — e.g., "spell-implement loop", "review quality", "session handoff". Use `--flush` instead to re-offer any previously queued upstream items.
|
|
6
|
+
agent: agent
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
- This spell captures post-session feedback on how well the spells and AI assistance worked.
|
|
12
|
+
- It structures the feedback into actionable improvement items and appends them to `FEEDBACK.md` at the repo root.
|
|
13
|
+
- Use it after any session where assistance felt notably effective or notably off — the record feeds `spell-enchant`.
|
|
14
|
+
- **Framework-shaped items** (about a spell, template, governance doc, playbook, or CLI behavior — not this repo's own content) can additionally route upstream as a GitHub issue on `{ARCANE_UPSTREAM_REPO}` — the same public intake path any arcane user would use, genericized first and gated by an explicit disclosure confirm. This is the whole consumer→arcane feedback loop: arcane is the one thing every consumer repo may reference without violating sibling isolation, because it's the installed, publicly-homed dependency, not a sibling venture.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
Collect and record feedback to improve the Arcane workflow.
|
|
19
|
+
|
|
20
|
+
## Flush Mode (`--flush`)
|
|
21
|
+
|
|
22
|
+
If the argument is `--flush`, skip Steps 1–5 entirely. Scan `FEEDBACK.md` for improvement items marked `<!-- upstream: queued -->`, and for each one run Step 6's filing flow (genericize, confirm, file or re-queue) without re-collecting feedback. Report how many were filed, re-queued, and how many remain.
|
|
23
|
+
|
|
24
|
+
The user's input describes what to give feedback on. If no argument is provided, ask one question: _"What part of the workflow or AI assistance do you want to give feedback on?"_ and wait.
|
|
25
|
+
|
|
26
|
+
## Step 1 — Identify Scope
|
|
27
|
+
|
|
28
|
+
From the input and recent context, determine:
|
|
29
|
+
|
|
30
|
+
- **Target** — which spell, agent, or general experience is being rated.
|
|
31
|
+
- **Session context** — the recent task/feature (check `TODO.md`, `DECISIONS.md`, latest `journal/` entry).
|
|
32
|
+
- **Type** — output quality, workflow friction, or tooling/setup.
|
|
33
|
+
|
|
34
|
+
Do not ask for anything you can infer from the conversation.
|
|
35
|
+
|
|
36
|
+
## Step 2 — Prompt for Structured Feedback
|
|
37
|
+
|
|
38
|
+
Ask all of this at once (not one at a time):
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
## Feedback Form
|
|
42
|
+
|
|
43
|
+
**Target:** [spell/agent/experience]
|
|
44
|
+
**Session:** [topic or "general"]
|
|
45
|
+
|
|
46
|
+
1. Overall quality (1–5): how effective was the assistance?
|
|
47
|
+
2. Friction points: what slowed you down or felt wrong?
|
|
48
|
+
3. What worked well: what should stay exactly as-is?
|
|
49
|
+
4. Suggested improvement: the single change that would help most?
|
|
50
|
+
5. Would you use this again? (yes / yes-with-changes / no)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If the user already covered some fields in their input, skip those and confirm what you inferred.
|
|
54
|
+
|
|
55
|
+
## Step 3 — Synthesize
|
|
56
|
+
|
|
57
|
+
Extract:
|
|
58
|
+
|
|
59
|
+
- **Improvement items** — specific, imperative, with a clear done-state ("Add…", "Fix…", "Remove…").
|
|
60
|
+
- **Positive signals** — patterns to preserve.
|
|
61
|
+
- **Blockers** — anything that prevented task completion (surface these under Friction Points).
|
|
62
|
+
|
|
63
|
+
Mark an item **substantial** (TODO-worthy) if any apply: it requires editing a spell/governance/agent file, it blocked task completion, or it recurs across sessions. Trivial one-off nits stay in `FEEDBACK.md` only.
|
|
64
|
+
|
|
65
|
+
For each substantial item, additionally classify **framework-shaped** vs **repo-local**: framework-shaped means the fix belongs in arcane itself (a spell prompt, template, governance doc, playbook, or CLI behavior this repo installed rather than authored); repo-local means it's specific to this repo's own content or configuration. Only framework-shaped items are offered upstream routing in Step 6.
|
|
66
|
+
|
|
67
|
+
## Step 4 — Show Proposal
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
## Feedback Summary
|
|
71
|
+
|
|
72
|
+
**Target:** [...] **Date:** [YYYY-MM-DD] **Rating:** [N/5] **Would use again:** [yes / yes-with-changes / no]
|
|
73
|
+
|
|
74
|
+
**Friction:** [...]
|
|
75
|
+
**Worked well:** [...]
|
|
76
|
+
**Improvement items:**
|
|
77
|
+
- [ ] [item] [SUBSTANTIAL if TODO-worthy] [FRAMEWORK-SHAPED if upstream-eligible]
|
|
78
|
+
|
|
79
|
+
Append to FEEDBACK.md? (yes / edit / skip)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
If the rating is ≤ 2, prepend a `⚠️ LOW RATING` line to this proposal so it is visible before the append decision — do not bury it.
|
|
83
|
+
|
|
84
|
+
## Step 5 — Apply (after approval)
|
|
85
|
+
|
|
86
|
+
1. Read `FEEDBACK.md` at the repo root (create with a `# Feedback Log` header if missing).
|
|
87
|
+
2. **Append** this block — never overwrite existing entries:
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Feedback — [Target] ([YYYY-MM-DD])
|
|
93
|
+
|
|
94
|
+
**Session:** [topic or "general"]
|
|
95
|
+
**Rating:** [N/5] **Would use again:** [yes / yes-with-changes / no]
|
|
96
|
+
**Submitted by:** [git config user.name if available, else "developer"]
|
|
97
|
+
|
|
98
|
+
### Friction Points
|
|
99
|
+
- [point — include any blockers]
|
|
100
|
+
|
|
101
|
+
### What Worked
|
|
102
|
+
- [strength]
|
|
103
|
+
|
|
104
|
+
### Improvement Items
|
|
105
|
+
- [ ] [item]
|
|
106
|
+
|
|
107
|
+
### Raw Notes
|
|
108
|
+
> [verbatim user input if useful]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
3. For each item marked **substantial** in Step 3, offer to add it to `TODO.md` as a `[feedback]`-tagged item. If the user accepts, hand off to [`spell-todo`](spell-todo.md) rather than editing `TODO.md` directly — it picks the right section and avoids duplicates.
|
|
112
|
+
4. For each item additionally marked **framework-shaped**, run Step 6.
|
|
113
|
+
5. Do NOT commit — leave that to `spell-commit-work`.
|
|
114
|
+
6. Confirm what was appended and where, then point the user to [`spell-enchant`](spell-enchant.md) if the feedback suggests a spell or PRD is ready to be lifted to the next quality tier.
|
|
115
|
+
|
|
116
|
+
## Step 6 — Upstream Routing (Framework-Shaped Items)
|
|
117
|
+
|
|
118
|
+
`{ARCANE_UPSTREAM_REPO}` is this install's own arcane framework repository (`owner/repo`) — resolve it from the installed `arcane-cli` package's `repository` field (e.g. `node_modules/arcane-cli/package.json`, or `npm view arcane-cli repository.url` if not vendored locally); ask the user if it cannot be determined. Never hardcode a specific org/repo here — a fork or downstream rename changes this value.
|
|
119
|
+
|
|
120
|
+
For each framework-shaped item:
|
|
121
|
+
|
|
122
|
+
1. **Genericize.** Strip anything identifying this specific consumer: venture/business names, org tokens, machine names, hub or local paths. Write "a consumer repo session" instead of naming the actual venture, generalize file paths to their relative form. The finding must read the same whether it came from this repo or any other arcane user's.
|
|
123
|
+
2. **Check `gh`.** If unauthenticated or offline, skip straight to the fallback below.
|
|
124
|
+
3. **Disclosure confirm.** Print the exact issue title and body that will be filed publicly on `{ARCANE_UPSTREAM_REPO}`, and ask for the literal word `disclose` — same discipline as `spell-manifest`'s disclosure gate; this is the same kind of act (private observation → public issue). Anything else is a decline, not an error.
|
|
125
|
+
4. **File.** On `disclose`: `gh issue create --repo {ARCANE_UPSTREAM_REPO} --title "<title>" --body "<genericized body>"`. Report the issue URL.
|
|
126
|
+
5. **Fallback.** If `gh` is unavailable, offline, or the operator declines: append `<!-- upstream: queued -->` to that item's line in `FEEDBACK.md`. Never block the rest of the session on this — queuing is a complete, valid outcome. The next `spell-feedback` run (or `spell-feedback --flush`) re-offers every queued item.
|
|
127
|
+
|
|
128
|
+
Maintainer side is unchanged: GitHub issues are arcane's normal public intake; triage into arcane's own `IDEAS.md`/`DECISIONS.md` happens in arcane sessions like any other issue. This spell never writes to a hub's venture books and never reads `ventures/registry.json` — framework feedback and venture ideas are different channels on purpose (venture ideas → hub books → `spell-manifest`; framework lessons → here → arcane's GitHub).
|
|
129
|
+
|
|
130
|
+
## Rules
|
|
131
|
+
|
|
132
|
+
- Never overwrite existing feedback — always append.
|
|
133
|
+
- Keep improvement items specific and actionable — no vague "improve quality".
|
|
134
|
+
- If overall quality is ≤ 2, flag it with `⚠️ LOW RATING` in the Step 4 proposal (before the append decision) and offer `spell-todo` to capture a concrete fix.
|
|
135
|
+
- After approval, write immediately — no further questions.
|
|
136
|
+
- Never include secrets or tokens.
|
|
137
|
+
- Never file an upstream issue without the literal `disclose` confirmation on that exact entry — batch approval of the local `FEEDBACK.md` append does not extend to Step 6.
|
|
138
|
+
- Never write a venture name, hub path, or machine name into an upstream issue — genericize before showing the disclosure confirm, not after.
|