@codeharbor/agent-playbook 0.2.0 → 0.2.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codeharbor/agent-playbook",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Local skill manager and installer for agent-playbook across Claude Code, Codex, and Gemini.",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -58,11 +58,11 @@ git diff --name-only main..HEAD | grep "^skills/"
58
58
 
59
59
  ### Auto-Trigger Changes Require Update
60
60
 
61
- If a skill's `hooks:` front matter was modified, the **Auto-Trigger** column in the Skills Catalog must be updated:
61
+ If a skill's `metadata.hooks` front matter was modified, the **Auto-Trigger** column in the Skills Catalog must be updated:
62
62
 
63
63
  ```bash
64
64
  # Check if hooks were modified
65
- git diff main..HEAD -- skills/*/SKILL.md | grep -E "^\+.*hooks:|^\+.*trigger:"
65
+ git diff main..HEAD -- skills/*/SKILL.md | grep -E "^\+.*metadata:|^\+.*hooks:|^\+.*trigger:"
66
66
  ```
67
67
 
68
68
  If hooks changed → Update README.md and README.zh-CN.md Auto-Trigger column.
@@ -2,18 +2,19 @@
2
2
  name: figma-designer
3
3
  description: Analyzes Figma designs and generates implementation-ready PRDs with detailed visual specifications. Use when user provides Figma link or uploads design screenshots. Requires Figma MCP server connection.
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch, AskUserQuestion
5
- hooks:
6
- after_complete:
7
- - trigger: prd-planner
8
- mode: ask_first
9
- condition: prd_generated
10
- reason: "Further refine PRD with 4-file pattern"
11
- - trigger: self-improving-agent
12
- mode: background
13
- reason: "Learn design patterns for future reference"
14
- - trigger: session-logger
15
- mode: auto
16
- reason: "Save design analysis session"
5
+ metadata:
6
+ hooks:
7
+ after_complete:
8
+ - trigger: prd-planner
9
+ mode: ask_first
10
+ condition: prd_generated
11
+ reason: "Further refine PRD with 4-file pattern"
12
+ - trigger: self-improving-agent
13
+ mode: background
14
+ reason: "Learn design patterns for future reference"
15
+ - trigger: session-logger
16
+ mode: auto
17
+ reason: "Save design analysis session"
17
18
  ---
18
19
 
19
20
  # Figma Designer
@@ -2,14 +2,15 @@
2
2
  name: prd-planner
3
3
  description: Creates PRDs using persistent file-based planning. Use when user explicitly says "PRD", "product requirements document", or "产品需求文档". Combines PRD methodology with planning-with-files to avoid context switching.
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion, WebSearch
5
- hooks:
6
- after_complete:
7
- - trigger: self-improving-agent
8
- mode: background
9
- reason: "Extract patterns and improve PRD quality"
10
- - trigger: session-logger
11
- mode: auto
12
- reason: "Save session context"
5
+ metadata:
6
+ hooks:
7
+ after_complete:
8
+ - trigger: self-improving-agent
9
+ mode: background
10
+ reason: "Extract patterns and improve PRD quality"
11
+ - trigger: session-logger
12
+ mode: auto
13
+ reason: "Save session context"
13
14
  ---
14
15
 
15
16
  # PRD Planner
@@ -2,25 +2,26 @@
2
2
  name: self-improving-agent
3
3
  description: A universal self-improving agent that learns from ALL skill experiences. Uses multi-memory architecture (semantic + episodic + working) to continuously evolve the codebase. Auto-triggers on skill completion/error with hooks-based self-correction.
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch
5
- hooks:
6
- before_start:
7
- - trigger: session-logger
8
- mode: auto
9
- context: "Start {skill_name}"
10
- after_complete:
11
- - trigger: create-pr
12
- mode: ask_first
13
- condition: skills_modified
14
- reason: "Submit improvements to repository"
15
- - trigger: session-logger
16
- mode: auto
17
- context: "Self-improvement cycle complete"
18
- # Note: on_error intentionally only logs to session to avoid infinite recursion
19
- # Self-correction is triggered by other skills (debugger, code-reviewer) completing their work
20
- on_error:
21
- - trigger: session-logger
22
- mode: auto
23
- context: "Error captured in {skill_name}"
5
+ metadata:
6
+ hooks:
7
+ before_start:
8
+ - trigger: session-logger
9
+ mode: auto
10
+ context: "Start {skill_name}"
11
+ after_complete:
12
+ - trigger: create-pr
13
+ mode: ask_first
14
+ condition: skills_modified
15
+ reason: "Submit improvements to repository"
16
+ - trigger: session-logger
17
+ mode: auto
18
+ context: "Self-improvement cycle complete"
19
+ # Note: on_error intentionally only logs to session to avoid infinite recursion
20
+ # Self-correction is triggered by other skills (debugger, code-reviewer) completing their work
21
+ on_error:
22
+ - trigger: session-logger
23
+ mode: auto
24
+ context: "Error captured in {skill_name}"
24
25
  ---
25
26
 
26
27
  # Self-Improving Agent
@@ -2,11 +2,12 @@
2
2
  name: workflow-orchestrator
3
3
  description: Automatically coordinates multi-skill workflows and triggers follow-up actions. Use when completing PRD creation, implementation, or any milestone that should trigger additional skills. This skill reads the auto-trigger configuration and executes the workflow chain.
4
4
  allowed-tools: Read, Write, Edit, Bash, Grep, AskUserQuestion
5
- hooks:
6
- after_complete:
7
- - trigger: session-logger
8
- mode: auto
9
- reason: "Save workflow execution context"
5
+ metadata:
6
+ hooks:
7
+ after_complete:
8
+ - trigger: session-logger
9
+ mode: auto
10
+ reason: "Save workflow execution context"
10
11
  ---
11
12
 
12
13
  # Workflow Orchestrator
package/src/cli.js CHANGED
@@ -1755,6 +1755,9 @@ function updateClaudeSettings(settings, cliPath, options) {
1755
1755
  const data = existing || {};
1756
1756
 
1757
1757
  data.hooks = data.hooks || {};
1758
+ const marker = `--hook-source ${HOOK_SOURCE_VALUE}`;
1759
+ data.hooks = removeHookCommand(data.hooks, "SessionEnd", marker);
1760
+ data.hooks = removeHookCommand(data.hooks, "PostToolUse", marker);
1758
1761
 
1759
1762
  let sessionCommand = buildHookCommand(cliPath, "session-log");
1760
1763
  sessionCommand = `${sessionCommand} --hook-source ${HOOK_SOURCE_VALUE}`;
@@ -1891,8 +1894,11 @@ function upsertCodexBlock(content, values) {
1891
1894
  }
1892
1895
 
1893
1896
  function removeCodexBlock(content) {
1894
- const pattern = /^\[agent_playbook\][\s\S]*?(?=^\[|\s*$)/m;
1895
- return content.replace(pattern, "").trimEnd();
1897
+ const pattern = /^\[agent_playbook\][\s\S]*?(?=^\[|\s*$)/gm;
1898
+ const cleaned = content.replace(pattern, "");
1899
+ const legacyPattern =
1900
+ /(?:\n\s*version\s*=\s*\"[^\"]*\"\s*\n\s*installed_at\s*=\s*\"[^\"]*\"\s*)+$/;
1901
+ return cleaned.replace(legacyPattern, "\n").trimEnd();
1896
1902
  }
1897
1903
 
1898
1904
  function buildHookCommand(cliPath, subcommand) {