claude-blueprint 2.0.2 → 2.0.4

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blueprint",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
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"
package/hooks/hooks.json CHANGED
@@ -33,12 +33,12 @@
33
33
  "matcher": "Bash",
34
34
  "hooks": [
35
35
  {
36
- "type": "prompt",
37
- "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.",
36
+ "type": "command",
37
+ "command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/retro-suggest.js\"",
38
38
  "timeout": 5
39
39
  }
40
40
  ],
41
- "_comment": "Retro-suggest after fix workflows (ADR-0034)"
41
+ "_comment": "Retro-suggest after fix commits (ADR-0034). Requires node in PATH (symlink from nvm to ~/.local/bin/ if needed)."
42
42
  },
43
43
  {
44
44
  "matcher": "Skill",
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ // PostToolUse:Bash hook — suggest /blueprint:retro after fix commits.
3
+ // Deterministic script replaces prompt-based hook to avoid false positives
4
+ // where the LLM would explain its reasoning on non-matching commands.
5
+
6
+ let input = '';
7
+ const timeout = setTimeout(() => process.exit(0), 5000);
8
+ process.stdin.setEncoding('utf8');
9
+ process.stdin.on('data', chunk => input += chunk);
10
+ process.stdin.on('end', () => {
11
+ clearTimeout(timeout);
12
+ try {
13
+ const data = JSON.parse(input);
14
+ const toolInput = data.tool_input || {};
15
+ const toolResponse = data.tool_response || '';
16
+
17
+ // Only match git commit commands
18
+ const cmd = toolInput.command || '';
19
+ if (!cmd.match(/\bgit\s+commit\b/)) {
20
+ process.exit(0);
21
+ }
22
+
23
+ // Only match if commit succeeded and message contains fix keywords
24
+ const output = typeof toolResponse === 'string' ? toolResponse : JSON.stringify(toolResponse);
25
+ if (/\b(fix|bugfix|hotfix|patch)\b/i.test(output) && !output.includes('nothing to commit')) {
26
+ const result = {
27
+ hookSpecificOutput: {
28
+ hookEventName: "PostToolUse",
29
+ additionalContext: "A bug fix was just committed. Consider running /blueprint:retro to classify the root cause and check if this warrants an ADR."
30
+ }
31
+ };
32
+ process.stdout.write(JSON.stringify(result));
33
+ }
34
+ // Otherwise: zero output = silent pass-through
35
+ } catch (e) {
36
+ process.exit(0);
37
+ }
38
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-blueprint",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
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": {