claude-blueprint 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +2 -1
- package/README.md +2 -2
- package/agents/adr-architect-cartographer.md +1 -0
- package/agents/adr-bug-surface-mapper.md +1 -0
- package/agents/adr-compliance-auditor.md +1 -0
- package/agents/adr-consistency-auditor.md +1 -0
- package/agents/adr-context-mapper.md +1 -0
- package/agents/adr-conways-law-analyzer.md +1 -0
- package/agents/adr-devils-advocate.md +1 -0
- package/agents/adr-diagram-generator.md +1 -0
- package/agents/adr-evidence-auditor.md +1 -0
- package/agents/adr-federation-indexer.md +1 -0
- package/agents/adr-forces-evaluator.md +1 -0
- package/agents/adr-impact-analyzer.md +1 -0
- package/agents/adr-maintainability-assessor.md +1 -0
- package/agents/adr-reflexion-analyzer.md +1 -0
- package/agents/adr-researcher.md +1 -0
- package/agents/adr-retrospective.md +1 -0
- package/agents/adr-risk-mapper.md +1 -0
- package/agents/adr-strategic-analyzer.md +1 -0
- package/agents/adr-testing-strategy-evaluator.md +1 -0
- package/agents/adr-tradeoff-analyzer.md +1 -0
- package/config/taxonomy.toml +9 -0
- package/hooks/hooks.json +58 -0
- package/package.json +3 -2
- package/{commands → skills}/debt.md +4 -3
- package/skills/persona/SKILL.md +43 -0
- package/{commands → skills}/status.md +2 -2
- package/src/install.js +5 -5
- package/src/verify.js +5 -5
- /package/{commands → skills}/advise.md +0 -0
- /package/{commands → skills}/architect.md +0 -0
- /package/{commands → skills}/audit.md +0 -0
- /package/{commands → skills}/blueprint.md +0 -0
- /package/{commands → skills}/challenge.md +0 -0
- /package/{commands → skills}/diagram.md +0 -0
- /package/{commands → skills}/digest.md +0 -0
- /package/{commands → skills}/drift.md +0 -0
- /package/{commands → skills}/eli5.md +0 -0
- /package/{commands → skills}/evaluate.md +0 -0
- /package/{commands → skills}/evidence.md +0 -0
- /package/{commands → skills}/export.md +0 -0
- /package/{commands → skills}/federate.md +0 -0
- /package/{commands → skills}/fitness.md +0 -0
- /package/{commands → skills}/govern.md +0 -0
- /package/{commands → skills}/guard.md +0 -0
- /package/{commands → skills}/health.md +0 -0
- /package/{commands → skills}/help.md +0 -0
- /package/{commands → skills}/hooks.md +0 -0
- /package/{commands → skills}/impact.md +0 -0
- /package/{commands → skills}/init.md +0 -0
- /package/{commands → skills}/list.md +0 -0
- /package/{commands → skills}/map.md +0 -0
- /package/{commands → skills}/new.md +0 -0
- /package/{commands → skills}/radar.md +0 -0
- /package/{commands → skills}/rearchitect.md +0 -0
- /package/{commands → skills}/reflect.md +0 -0
- /package/{commands → skills}/retro.md +0 -0
- /package/{commands → skills}/review.md +0 -0
- /package/{commands → skills}/risk.md +0 -0
- /package/{commands → skills}/scope.md +0 -0
- /package/{commands → skills}/search.md +0 -0
- /package/{commands → skills}/timeline.md +0 -0
- /package/{commands → skills}/trace.md +0 -0
- /package/{commands → skills}/tradeoff.md +0 -0
- /package/{commands → skills}/transition.md +0 -0
- /package/{commands → skills}/views.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blueprint",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Architecture Decision Records with teeth — 39 commands, 21 agents, 15 architecture paradigms. DDD bounded contexts, DCAR forces evaluation, reflexion model conformance, epistemic status tracking, Wardley strategic analysis, C4 diagrams, ATAM tradeoff analysis, risk heat maps, cross-repo federation, and configurable governance tiers. All with a cranky senior engineer persona.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "pragnition"
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"homepage": "https://github.com/pragnition/blueprint",
|
|
9
9
|
"repository": "https://github.com/pragnition/blueprint",
|
|
10
10
|
"license": "MIT",
|
|
11
|
+
"hooks": "./hooks/hooks.json",
|
|
11
12
|
"keywords": [
|
|
12
13
|
"adr",
|
|
13
14
|
"architecture",
|
package/README.md
CHANGED
|
@@ -357,13 +357,13 @@ npm link
|
|
|
357
357
|
claude-blueprint install --global
|
|
358
358
|
```
|
|
359
359
|
|
|
360
|
-
The installer deploys 39
|
|
360
|
+
The installer deploys 39 skills, 21 agents, and 8 config files to `~/.claude/commands/blueprint/`, and inserts a managed section into `CLAUDE.md` with the command reference.
|
|
361
361
|
|
|
362
362
|
## Architecture of Blueprint Itself
|
|
363
363
|
|
|
364
364
|
```
|
|
365
365
|
blueprint/
|
|
366
|
-
├──
|
|
366
|
+
├── skills/ 39 skill files
|
|
367
367
|
│ ├── blueprint.md Thin router
|
|
368
368
|
│ ├── init.md Bootstrap from existing codebase
|
|
369
369
|
│ ├── help.md Contextual command reference
|
|
@@ -3,6 +3,7 @@ name: adr-architect-cartographer
|
|
|
3
3
|
description: Generates and maintains ARCHITECTURE.md — a bird's-eye map of the codebase following matklad's philosophy. Produces codemap, invariants, cross-cutting concerns, and layer boundaries. References ADRs as the canonical source for why things are the way they are.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: white
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-bug-surface-mapper
|
|
|
3
3
|
description: Maps the architectural bug surface — identifies where bugs are structurally likely to emerge based on complexity, coupling, missing boundaries, and state management. Does NOT hunt for specific bugs.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: orange
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-compliance-auditor
|
|
|
3
3
|
description: Audits the codebase against accepted ADRs to verify decisions are being followed. Detects violations, drift, and non-compliance with evidence.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: blue
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-consistency-auditor
|
|
|
3
3
|
description: Evaluates structural consistency across a codebase — pattern adherence, layering discipline, naming conventions, dependency direction, and error handling uniformity.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: green
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-context-mapper
|
|
|
3
3
|
description: Analyzes codebase to infer bounded contexts from module structure, package boundaries, naming patterns, and git ownership. Maps ADRs to contexts and generates context maps showing inter-context relationships.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: green
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-conways-law-analyzer
|
|
|
3
3
|
description: Analyzes alignment between system architecture and team/organizational structure (Conway's Law). Identifies where module boundaries, ownership, and communication overhead create friction or enable velocity.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: teal
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-devils-advocate
|
|
|
3
3
|
description: Critically challenges a proposed ADR before acceptance. Identifies unconsidered alternatives, hidden risks, faulty assumptions, and missing consequences. Produces a challenge report.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: red
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-diagram-generator
|
|
|
3
3
|
description: Generates C4 Model diagrams (System Context, Container, Component) from accepted ADRs and the relationship graph. Outputs Mermaid, Structurizr DSL, or PlantUML.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: cyan
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-evidence-auditor
|
|
|
3
3
|
description: Audits the epistemic status and temporal validity of evidence supporting accepted ADRs. Detects stale evidence, unverified AI-generated research, and decisions whose supporting context has changed.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: magenta
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-federation-indexer
|
|
|
3
3
|
description: Aggregates ADRs across multiple repositories into a unified index. Detects cross-repo conflicts, duplicates, and missing cross-references. Addresses the top practitioner criticism of repo-scoped ADRs.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: green
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-forces-evaluator
|
|
|
3
3
|
description: Evaluates an ADR using DCAR's structured forces template — systematically weighs arguments for and against a decision, generates force-balance reports, and scores decisions as confirmed or needs-re-evaluation.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: yellow
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-impact-analyzer
|
|
|
3
3
|
description: Analyzes a new or existing ADR against all other accepted ADRs and the codebase. Detects conflicts, duplicates, dependencies, and affected components.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: yellow
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-maintainability-assessor
|
|
|
3
3
|
description: Evaluates long-term maintainability — dependency health, abstraction quality, change amplification, cognitive complexity, and technical debt indicators.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: purple
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-reflexion-analyzer
|
|
|
3
3
|
description: Computes reflexion models by comparing the intended architecture (from accepted ADRs + ARCHITECTURE.md) against actual source code structure. Reports convergences, divergences, and absences for rigorous drift detection.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: red
|
|
7
8
|
---
|
|
8
9
|
|
package/agents/adr-researcher.md
CHANGED
|
@@ -3,6 +3,7 @@ name: adr-researcher
|
|
|
3
3
|
description: Researches technology options, alternatives, and trade-offs for a proposed architectural decision. Produces a structured research brief consumed by the ADR drafting flow.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: cyan
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-retrospective
|
|
|
3
3
|
description: Post-fix retrospective agent that evaluates recent changes for band-aid vs systemic fixes, identifies root cause classes, and proposes ADRs for architectural improvements worth formalizing.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: amber
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-risk-mapper
|
|
|
3
3
|
description: Generates automated risk heat maps by analyzing ADR coverage gaps, component complexity, git churn, coupling density, and missing governance. Identifies architectural risk concentrations.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: red
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-strategic-analyzer
|
|
|
3
3
|
description: Analyzes ADRs against Wardley Map evolution stages to detect strategic misalignment — building custom solutions for commodity problems, or using commodity tools for genesis-stage differentiators.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch, WebFetch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: blue
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-testing-strategy-evaluator
|
|
|
3
3
|
description: Evaluates testing strategy completeness — coverage architecture, anti-pattern tests, testing pyramid health, test quality, and alignment between test structure and system risk areas.
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: magenta
|
|
7
8
|
---
|
|
8
9
|
|
|
@@ -3,6 +3,7 @@ name: adr-tradeoff-analyzer
|
|
|
3
3
|
description: Generates ATAM-style quality attribute utility trees from accepted ADRs. Identifies sensitivity points, tradeoff points, risks, and non-risks across the decision landscape.
|
|
4
4
|
tools: Read, Grep, Glob, Bash, WebSearch
|
|
5
5
|
model: inherit
|
|
6
|
+
skills: ["persona"]
|
|
6
7
|
color: yellow
|
|
7
8
|
---
|
|
8
9
|
|
package/config/taxonomy.toml
CHANGED
|
@@ -165,6 +165,15 @@ L0 = "Unverified — AI-generated, unsourced, or unconfirmed"
|
|
|
165
165
|
L1 = "Logically Consistent — sourced, sound reasoning, not project-tested"
|
|
166
166
|
L2 = "Empirically Validated — tested and confirmed in this project"
|
|
167
167
|
|
|
168
|
+
# --- Decision Debt Scoring ---
|
|
169
|
+
# Single source of truth for debt calculation. Used by /blueprint:debt and /blueprint:status.
|
|
170
|
+
|
|
171
|
+
[debt_scoring]
|
|
172
|
+
formula = "severity_weight × age_months × dependency_count"
|
|
173
|
+
severity_weights = { High = 3, Medium = 2, Low = 1 }
|
|
174
|
+
thresholds = { nominal = 10, elevated = 25, critical = 50 }
|
|
175
|
+
evidence_debt_multiplier = 1.5 # Expired evidence scores 1.5x vs deferred decisions
|
|
176
|
+
|
|
168
177
|
# --- Decision Categories ---
|
|
169
178
|
|
|
170
179
|
decision_categories = [
|
package/hooks/hooks.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Blueprint architecture governance hooks. Pre-commit guard is opt-in (disabled by default). All others suggest actions without blocking.",
|
|
3
|
+
"hooks": {
|
|
4
|
+
"PreToolUse": [
|
|
5
|
+
{
|
|
6
|
+
"matcher": "Write|Edit",
|
|
7
|
+
"hooks": [
|
|
8
|
+
{
|
|
9
|
+
"type": "prompt",
|
|
10
|
+
"prompt": "Check if this file change violates any accepted ADR invariant. If it does, warn the user with the specific ADR reference. If no ADRs exist or no violation is detected, approve silently.",
|
|
11
|
+
"timeout": 10
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"disabled": true,
|
|
15
|
+
"_comment": "Pre-commit architecture guard (ADR-0026). Enable with /blueprint:hooks install guard"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"PostToolUse": [
|
|
19
|
+
{
|
|
20
|
+
"matcher": "Bash",
|
|
21
|
+
"hooks": [
|
|
22
|
+
{
|
|
23
|
+
"type": "prompt",
|
|
24
|
+
"prompt": "If the command output indicates a bug fix was just applied (commit message contains 'fix', 'bugfix', 'hotfix', or 'patch'), suggest: 'Run /blueprint:retro to check if this fix warrants an ADR.' Do not block — just suggest.",
|
|
25
|
+
"timeout": 5
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"_comment": "Retro-suggest after fix workflows (ADR-0034)"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"Stop": [
|
|
32
|
+
{
|
|
33
|
+
"matcher": ".*",
|
|
34
|
+
"hooks": [
|
|
35
|
+
{
|
|
36
|
+
"type": "prompt",
|
|
37
|
+
"prompt": "If an ADR was just accepted, rejected, or transitioned during this session, suggest: 'Run /blueprint:architect to update ARCHITECTURE.md and /blueprint:fitness to regenerate fitness functions.' Do not block.",
|
|
38
|
+
"timeout": 5
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"_comment": "Architecture-sync after ADR transitions (ADR-0034)"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"FileChanged": [
|
|
45
|
+
{
|
|
46
|
+
"matcher": "package\\.json|requirements\\.txt|pyproject\\.toml|Cargo\\.toml|go\\.mod",
|
|
47
|
+
"hooks": [
|
|
48
|
+
{
|
|
49
|
+
"type": "prompt",
|
|
50
|
+
"prompt": "A dependency manifest was modified. If a new dependency was added, suggest: 'Consider /blueprint:new to document this technology choice as an ADR.' Do not block.",
|
|
51
|
+
"timeout": 5
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"_comment": "Dependency-watch on package changes (ADR-0034)"
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-blueprint",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Architecture Decision Records with teeth — lifecycle management, 15 architecture paradigms, DDD context scoping, DCAR forces evaluation, reflexion models, Wardley mapping, C4 diagrams, ATAM tradeoff analysis, and 19 specialized agents for Claude Code.",
|
|
6
6
|
"bin": {
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"bin/",
|
|
12
12
|
"src/",
|
|
13
13
|
".claude-plugin/",
|
|
14
|
-
"
|
|
14
|
+
"skills/",
|
|
15
|
+
"hooks/",
|
|
15
16
|
"agents/",
|
|
16
17
|
"config/"
|
|
17
18
|
],
|
|
@@ -58,9 +58,10 @@ For each deferred decision, check if the trigger condition has been met:
|
|
|
58
58
|
|
|
59
59
|
### Step 3: Calculate Decision Debt Score
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
Read the formula and weights from `config/taxonomy.toml` `[debt_scoring]` section.
|
|
62
|
+
Default formula: `severity_weight × age_months × dependency_count`
|
|
63
|
+
Severity weights: High=3, Medium=2, Low=1
|
|
64
|
+
Thresholds: nominal < 10, elevated < 25, critical ≥ 50
|
|
64
65
|
|
|
65
66
|
Higher score = more urgent. A high-severity decision deferred 8 months ago with
|
|
66
67
|
3 other decisions depending on it is more urgent than a low-severity decision
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona
|
|
3
|
+
description: Senior Engineer Persona — shared personality for all Blueprint agents
|
|
4
|
+
user-invocable: false
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Senior Engineer Persona
|
|
9
|
+
|
|
10
|
+
You are a senior engineer with 20 years of production experience and zero patience for
|
|
11
|
+
sloppiness. You've been paged at 3 AM because someone thought "it's fine, we'll fix it
|
|
12
|
+
later." You've watched "temporary" workarounds survive three team turnovers. You've debugged
|
|
13
|
+
race conditions caused by developers who thought shared mutable state was "simpler."
|
|
14
|
+
|
|
15
|
+
You are not mean. You are direct. There is a difference.
|
|
16
|
+
|
|
17
|
+
**Your principles:**
|
|
18
|
+
|
|
19
|
+
- Say what you mean. "Consider using const" is weak. "This should be const — it's never
|
|
20
|
+
reassigned, and let signals mutation intent you don't have" is clear.
|
|
21
|
+
- Small things matter because they compound. One inconsistent naming convention is a style
|
|
22
|
+
choice. Fifty is a codebase that nobody can navigate.
|
|
23
|
+
- "It works" is not a quality bar. Code that works but violates conventions, has no error
|
|
24
|
+
handling, or is untested is a landmine with a longer fuse.
|
|
25
|
+
- Be specific with criticism. "This is messy" is unhelpful. "This function is 80 lines with
|
|
26
|
+
6 levels of nesting — extract the validation logic" is actionable.
|
|
27
|
+
- Credit good work when you see it. Not everything is broken. When the architecture is solid,
|
|
28
|
+
say so — briefly, then move on to what isn't.
|
|
29
|
+
|
|
30
|
+
**Your tone:**
|
|
31
|
+
|
|
32
|
+
- Blunt but not cruel. You respect the developer, not the code.
|
|
33
|
+
- Opinionated with receipts. Strong opinions backed by evidence, not vibes.
|
|
34
|
+
- Zero hedging. Not "you might want to consider..." but "do this, here's why."
|
|
35
|
+
- Petty about the right things. Naming matters. Consistency matters. Error handling matters.
|
|
36
|
+
Whitespace doesn't.
|
|
37
|
+
- Dry humor is fine. Sarcasm directed at patterns, never at people.
|
|
38
|
+
|
|
39
|
+
**Apply this persona to your functional role.** You are still doing your specific job
|
|
40
|
+
(researching, reviewing, auditing, analyzing) — the persona shapes HOW you communicate
|
|
41
|
+
findings, not WHAT you look for. Your structured output format stays the same. Your verdicts
|
|
42
|
+
and recommendations stay evidence-based. But your prose should read like it was written by
|
|
43
|
+
someone who has strong opinions because they've earned them the hard way.
|
|
@@ -69,8 +69,8 @@ Read from parent `blueprint/` skill directory:
|
|
|
69
69
|
|
|
70
70
|
**Decision debt:**
|
|
71
71
|
- Count Deferred ADRs
|
|
72
|
-
- For each, check trigger conditions against codebase (
|
|
73
|
-
-
|
|
72
|
+
- For each, check trigger conditions against codebase (delegate to `/blueprint:debt` logic)
|
|
73
|
+
- Read debt score formula from `config/taxonomy.toml` `[debt_scoring]` section
|
|
74
74
|
- Flag any with triggered conditions
|
|
75
75
|
|
|
76
76
|
**Operations recency:**
|
package/src/install.js
CHANGED
|
@@ -45,20 +45,20 @@ export async function install(opts) {
|
|
|
45
45
|
// Copy root command (router)
|
|
46
46
|
spinner.start('Installing router...');
|
|
47
47
|
await copyFile(
|
|
48
|
-
join(PLUGIN_ROOT, '
|
|
48
|
+
join(PLUGIN_ROOT, 'skills', 'blueprint.md'),
|
|
49
49
|
join(paths.commands, 'SKILL.md'),
|
|
50
50
|
);
|
|
51
51
|
spinner.succeed('Router installed');
|
|
52
52
|
|
|
53
|
-
// Copy sub-
|
|
54
|
-
spinner.start('Installing
|
|
53
|
+
// Copy sub-skills as SKILL.md in their directories
|
|
54
|
+
spinner.start('Installing skills...');
|
|
55
55
|
for (const cmd of SUB_COMMANDS) {
|
|
56
56
|
await copyFile(
|
|
57
|
-
join(PLUGIN_ROOT, '
|
|
57
|
+
join(PLUGIN_ROOT, 'skills', `${cmd}.md`),
|
|
58
58
|
join(paths.commands, cmd, 'SKILL.md'),
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
|
-
spinner.succeed(`${SUB_COMMANDS.length}
|
|
61
|
+
spinner.succeed(`${SUB_COMMANDS.length} skills installed`);
|
|
62
62
|
|
|
63
63
|
// Copy agents
|
|
64
64
|
spinner.start('Installing agents...');
|
package/src/verify.js
CHANGED
|
@@ -2,9 +2,9 @@ import { access } from 'fs/promises';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { getTargetPaths } from './paths.js';
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const EXPECTED_SKILLS = [
|
|
6
6
|
'SKILL.md',
|
|
7
|
-
// v1
|
|
7
|
+
// v1 skills
|
|
8
8
|
'help/SKILL.md',
|
|
9
9
|
'list/SKILL.md',
|
|
10
10
|
'new/SKILL.md',
|
|
@@ -28,7 +28,7 @@ const EXPECTED_COMMANDS = [
|
|
|
28
28
|
'status/SKILL.md',
|
|
29
29
|
'health/SKILL.md',
|
|
30
30
|
'hooks/SKILL.md',
|
|
31
|
-
// v2
|
|
31
|
+
// v2 skills
|
|
32
32
|
'scope/SKILL.md',
|
|
33
33
|
'challenge/SKILL.md',
|
|
34
34
|
'reflect/SKILL.md',
|
|
@@ -111,8 +111,8 @@ export async function verify(opts) {
|
|
|
111
111
|
|
|
112
112
|
let missing = 0;
|
|
113
113
|
|
|
114
|
-
// Check
|
|
115
|
-
for (const cmd of
|
|
114
|
+
// Check skills
|
|
115
|
+
for (const cmd of EXPECTED_SKILLS) {
|
|
116
116
|
const ok = await fileExists(join(paths.commands, cmd));
|
|
117
117
|
console.log(` ${ok ? '✓' : '✗'} commands/${cmd}`);
|
|
118
118
|
if (!ok) missing++;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|