continuous-improvement 3.11.0 → 3.12.3
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/marketplace.json +3 -3
- package/CHANGELOG.md +34 -0
- package/LICENSE +21 -21
- package/QUICKSTART.md +1 -1
- package/README.md +16 -15
- package/SKILL.md +1 -1
- package/bin/analyze.sh +161 -161
- package/bin/backfill.mjs +19 -19
- package/bin/check-doc-runtime-claims.mjs +0 -0
- package/bin/check-docs-substrings.mjs +0 -0
- package/bin/check-everything-mirror.mjs +0 -0
- package/bin/check-routing-targets.mjs +0 -0
- package/bin/check-scripts-citation-drift.mjs +0 -0
- package/bin/check-skill-count.mjs +0 -0
- package/bin/check-skill-law-tag.mjs +0 -0
- package/bin/check-skill-mirror.mjs +0 -0
- package/bin/check-skill-tiers.mjs +0 -0
- package/bin/check-test-imports-only.mjs +0 -0
- package/bin/check-third-party-shape.mjs +0 -0
- package/bin/check-tool-count.mjs +129 -0
- package/bin/companion-preference-status.mjs +0 -0
- package/bin/gateguard-clear.mjs +0 -0
- package/bin/generate-plugin-manifests.mjs +1 -0
- package/bin/harvest-friction.mjs +1 -1
- package/bin/hook-stats.mjs +21 -21
- package/bin/install.mjs +3 -2
- package/bin/lint-transcript.mjs +0 -0
- package/bin/mcp-server.mjs +1 -1
- package/bin/observe.mjs +0 -0
- package/bin/pre-commit-block-strays.sh +0 -0
- package/bin/refresh-third-party.mjs +0 -0
- package/bin/unified-cli.mjs +0 -0
- package/commands/continuous-improvement.md +115 -115
- package/commands/dashboard.md +56 -56
- package/commands/harvest.md +1 -1
- package/commands/seven-laws.md +16 -16
- package/commands/superpowers.md +1 -1
- package/commands/workspace-surface-audit.md +77 -77
- package/hooks/companion-preference.mjs +0 -0
- package/hooks/gateguard.mjs +22 -10
- package/hooks/goal-drift-stop.mjs +0 -0
- package/hooks/observe.sh +0 -0
- package/hooks/recall-briefing.mjs +167 -0
- package/hooks/route-prompt.mjs +0 -0
- package/hooks/session.sh +106 -106
- package/hooks/three-section-close.mjs +0 -0
- package/instinct-packs/go.json +58 -58
- package/instinct-packs/meta.json +16 -16
- package/instinct-packs/python.json +58 -58
- package/instinct-packs/react.json +58 -58
- package/lib/cli-anything.mjs +0 -0
- package/lib/compound-engineering.mjs +0 -0
- package/lib/gateguard-state.mjs +0 -0
- package/lib/goal-drift-gate.mjs +0 -0
- package/lib/goal-state.mjs +8 -8
- package/lib/observe-event.mjs +0 -0
- package/lib/plugin-metadata.mjs +12 -7
- package/lib/pm-marketplace.mjs +0 -0
- package/lib/pm-skills.mjs +0 -0
- package/lib/recall-briefing.mjs +57 -0
- package/lib/recall-index.mjs +2 -2
- package/lib/resolve-home-dir.mjs +0 -0
- package/lib/skill-distill.mjs +0 -0
- package/lib/skill-tiers.mjs +0 -0
- package/lib/unified-plugin.mjs +0 -0
- package/llms.txt +2 -2
- package/package.json +4 -3
- package/plugins/beginner.json +3 -3
- package/plugins/continuous-improvement/.claude-plugin/marketplace.json +2 -2
- package/plugins/continuous-improvement/.claude-plugin/plugin.json +2 -2
- package/plugins/continuous-improvement/LICENSE +21 -21
- package/plugins/continuous-improvement/agents/README.md +3 -3
- package/plugins/continuous-improvement/bin/backfill.mjs +19 -19
- package/plugins/continuous-improvement/bin/gateguard-clear.mjs +0 -0
- package/plugins/continuous-improvement/bin/mcp-server.mjs +1 -1
- package/plugins/continuous-improvement/bin/observe.mjs +0 -0
- package/plugins/continuous-improvement/commands/continuous-improvement.md +115 -115
- package/plugins/continuous-improvement/commands/dashboard.md +56 -56
- package/plugins/continuous-improvement/commands/harvest.md +1 -1
- package/plugins/continuous-improvement/commands/seven-laws.md +16 -16
- package/plugins/continuous-improvement/commands/superpowers.md +1 -1
- package/plugins/continuous-improvement/commands/workspace-surface-audit.md +77 -77
- package/plugins/continuous-improvement/hooks/companion-preference.mjs +0 -0
- package/plugins/continuous-improvement/hooks/gateguard.mjs +22 -10
- package/plugins/continuous-improvement/hooks/goal-drift-stop.mjs +0 -0
- package/plugins/continuous-improvement/hooks/hooks.json +6 -1
- package/plugins/continuous-improvement/hooks/observe.sh +0 -0
- package/plugins/continuous-improvement/hooks/recall-briefing.mjs +167 -0
- package/plugins/continuous-improvement/hooks/route-prompt.mjs +0 -0
- package/plugins/continuous-improvement/hooks/session.sh +106 -106
- package/plugins/continuous-improvement/hooks/three-section-close.mjs +0 -0
- package/plugins/continuous-improvement/instinct-packs/go.json +58 -58
- package/plugins/continuous-improvement/instinct-packs/meta.json +16 -16
- package/plugins/continuous-improvement/instinct-packs/python.json +58 -58
- package/plugins/continuous-improvement/instinct-packs/react.json +58 -58
- package/plugins/continuous-improvement/lib/gateguard-state.mjs +0 -0
- package/plugins/continuous-improvement/lib/goal-drift-gate.mjs +0 -0
- package/plugins/continuous-improvement/lib/goal-state.mjs +8 -8
- package/plugins/continuous-improvement/lib/observe-event.mjs +0 -0
- package/plugins/continuous-improvement/lib/plugin-metadata.mjs +12 -7
- package/plugins/continuous-improvement/lib/recall-briefing.mjs +57 -0
- package/plugins/continuous-improvement/lib/recall-index.mjs +2 -2
- package/plugins/continuous-improvement/lib/resolve-home-dir.mjs +0 -0
- package/plugins/continuous-improvement/lib/skill-distill.mjs +0 -0
- package/plugins/continuous-improvement/skills/continuous-improvement/SKILL.md +1 -1
- package/plugins/continuous-improvement/skills/superpowers/SKILL.md +1 -1
- package/plugins/continuous-improvement/skills/tdd-workflow/SKILL.md +411 -411
- package/plugins/expert.json +2 -2
- package/skills/superpowers.md +1 -1
- package/skills/tdd-workflow.md +411 -411
package/plugins/beginner.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "continuous-improvement",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.12.3",
|
|
4
4
|
"mode": "beginner",
|
|
5
|
-
"description": "Beginner mode: see what your agent learned, list its instincts, and request a session reflection. Bundles four
|
|
5
|
+
"description": "Beginner mode: see what your agent learned, list its instincts, and request a session reflection. Bundles four grounding skills (gateguard, para-memory-files, tdd-workflow, verification-loop) so research, memory, tests, and verification happen by default — every edit starts from facts, not guesses.",
|
|
6
6
|
"tools": [
|
|
7
7
|
{
|
|
8
8
|
"name": "ci_status",
|
|
@@ -53,6 +53,6 @@
|
|
|
53
53
|
"PostToolUse",
|
|
54
54
|
"UserPromptSubmit"
|
|
55
55
|
],
|
|
56
|
-
"description": "Silently captures every tool call as observations and routes prompts to the matching
|
|
56
|
+
"description": "Silently captures every tool call as observations and routes prompts to the matching skill via the route table. Lightweight and non-blocking."
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"plugins": [
|
|
8
8
|
{
|
|
9
9
|
"name": "continuous-improvement",
|
|
10
|
-
"description": "
|
|
11
|
-
"version": "3.
|
|
10
|
+
"description": "Makes Claude Code reason harder, recall past corrections, and learn from every session so its competence compounds run over run. The Mulahazah engine turns each fix into a reusable instinct, so a lesson learned once is applied automatically next time — no re-teaching. Built on the 7 Laws of AI Agent Discipline (research, plan, verify, reflect, learn) and shipped as 25 bundled skills, instinct-aware hooks, an MCP toolset for recall and reflection, and a GitHub Action transcript linter that feeds real work history back into sharper instincts.",
|
|
11
|
+
"version": "3.12.3",
|
|
12
12
|
"source": "./",
|
|
13
13
|
"author": {
|
|
14
14
|
"name": "naimkatiman"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "continuous-improvement",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.12.3",
|
|
4
|
+
"description": "Makes Claude Code reason harder, recall past corrections, and learn from every session so its competence compounds run over run. The Mulahazah engine turns each fix into a reusable instinct, so a lesson learned once is applied automatically next time — no re-teaching. Built on the 7 Laws of AI Agent Discipline (research, plan, verify, reflect, learn) and shipped as 25 bundled skills, instinct-aware hooks, an MCP toolset for recall and reflection, and a GitHub Action transcript linter that feeds real work history back into sharper instincts.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "naimkatiman",
|
|
7
7
|
"url": "https://github.com/naimkatiman"
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Naim Katiman
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Naim Katiman
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -40,7 +40,7 @@ Pick this only when **independent** investigations can run in parallel and produ
|
|
|
40
40
|
|
|
41
41
|
- `/ship` → fans out to `code-reviewer` + `security-auditor` + `test-engineer` in parallel, then synthesizes their reports into a go/no-go decision
|
|
42
42
|
|
|
43
|
-
This is the only orchestration pattern this repo endorses. See
|
|
43
|
+
This is the only orchestration pattern this repo endorses. See the **Decision matrix** below for when to fan out versus invoke a single persona.
|
|
44
44
|
|
|
45
45
|
## Decision matrix
|
|
46
46
|
|
|
@@ -107,7 +107,7 @@ The personas in this repo are designed to work as Claude Code subagents and as A
|
|
|
107
107
|
- **As subagents:** auto-discovered when this plugin is enabled (no path config needed). Use the Agent tool with `subagent_type: code-reviewer` (or `security-auditor`, `test-engineer`). `/ship` is the canonical example.
|
|
108
108
|
- **As Agent Teams teammates** (experimental, requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`): reference the same persona name when spawning a teammate. The persona's body is **appended to** the teammate's system prompt as additional instructions (not a replacement), so your persona text sits on top of the team-coordination instructions the lead installs (SendMessage, task-list tools, etc.).
|
|
109
109
|
|
|
110
|
-
Subagents only report results back to the main agent. Agent Teams let teammates message each other directly. Use subagents when reports are enough; use Agent Teams when sub-agents need to challenge each other's findings (e.g. competing-hypothesis debugging).
|
|
110
|
+
Subagents only report results back to the main agent. Agent Teams let teammates message each other directly. Use subagents when reports are enough; use Agent Teams when sub-agents need to challenge each other's findings (e.g. competing-hypothesis debugging).
|
|
111
111
|
|
|
112
112
|
Plugin agents do not support `hooks`, `mcpServers`, or `permissionMode` frontmatter — those fields are silently ignored. Avoid relying on them when authoring new personas here.
|
|
113
113
|
|
|
@@ -117,4 +117,4 @@ Plugin agents do not support `hooks`, `mcpServers`, or `permissionMode` frontmat
|
|
|
117
117
|
2. Define the role, scope, output format, and rules.
|
|
118
118
|
3. Add a **Composition** block at the bottom (Invoke directly when / Invoke via / Do not invoke from another persona).
|
|
119
119
|
4. Add the persona to the table at the top of this file.
|
|
120
|
-
5. If the persona enables a new orchestration pattern, document it in
|
|
120
|
+
5. If the persona enables a new orchestration pattern, document it in the **Decision matrix** above rather than inventing the pattern in the persona file itself.
|
|
@@ -27,25 +27,25 @@ const args = process.argv.slice(2);
|
|
|
27
27
|
const DRY_RUN = args.includes("--dry-run");
|
|
28
28
|
const HELP = args.includes("--help") || args.includes("-h");
|
|
29
29
|
if (HELP) {
|
|
30
|
-
console.log(`
|
|
31
|
-
backfill — Tag legacy thin-schema observation rows.
|
|
32
|
-
|
|
33
|
-
Usage:
|
|
34
|
-
npx continuous-improvement backfill Tag rows in place
|
|
35
|
-
npx continuous-improvement backfill --dry-run Report counts, write nothing
|
|
36
|
-
|
|
37
|
-
What it does:
|
|
38
|
-
Walks ~/.claude/instincts/<hash>/observations.jsonl files and adds a
|
|
39
|
-
schema field ("thin" or "rich") to every row that lacks one. Thin rows
|
|
40
|
-
came from the legacy bash fallback (jq missing) and have no input_summary;
|
|
41
|
-
rich rows came from the Node observer and have full tool_input.command /
|
|
42
|
-
Edit.file_path / etc.
|
|
43
|
-
|
|
44
|
-
Output:
|
|
45
|
-
- observations.jsonl rewritten in place (original kept as .bak)
|
|
46
|
-
- backfill-summary.json with per-project counts
|
|
47
|
-
|
|
48
|
-
Idempotent. Always exits 0 — failures go to stderr only.
|
|
30
|
+
console.log(`
|
|
31
|
+
backfill — Tag legacy thin-schema observation rows.
|
|
32
|
+
|
|
33
|
+
Usage:
|
|
34
|
+
npx continuous-improvement backfill Tag rows in place
|
|
35
|
+
npx continuous-improvement backfill --dry-run Report counts, write nothing
|
|
36
|
+
|
|
37
|
+
What it does:
|
|
38
|
+
Walks ~/.claude/instincts/<hash>/observations.jsonl files and adds a
|
|
39
|
+
schema field ("thin" or "rich") to every row that lacks one. Thin rows
|
|
40
|
+
came from the legacy bash fallback (jq missing) and have no input_summary;
|
|
41
|
+
rich rows came from the Node observer and have full tool_input.command /
|
|
42
|
+
Edit.file_path / etc.
|
|
43
|
+
|
|
44
|
+
Output:
|
|
45
|
+
- observations.jsonl rewritten in place (original kept as .bak)
|
|
46
|
+
- backfill-summary.json with per-project counts
|
|
47
|
+
|
|
48
|
+
Idempotent. Always exits 0 — failures go to stderr only.
|
|
49
49
|
`);
|
|
50
50
|
process.exit(0);
|
|
51
51
|
}
|
|
File without changes
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* continuous-improvement MCP Server
|
|
4
4
|
*
|
|
5
5
|
* Exposes instincts, observations, and reflection as MCP tools + resources.
|
|
6
|
-
* Two modes: beginner (
|
|
6
|
+
* Two modes: beginner (4 tools) and expert (all tools).
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
9
|
* node bin/mcp-server.mjs # default: beginner mode
|
|
File without changes
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: continuous-improvement
|
|
3
|
-
description: "Reflect on the current session, analyze observations for patterns, and show instinct status. Runs on-demand to save tokens."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /continuous-improvement
|
|
7
|
-
|
|
8
|
-
Run this when you want to reflect and learn — not every session. Three steps in order.
|
|
9
|
-
|
|
10
|
-
## Step 1: Reflect
|
|
11
|
-
|
|
12
|
-
Generate a reflection for this session based on what happened:
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
## Reflection — [Date]
|
|
16
|
-
- What worked:
|
|
17
|
-
- What failed:
|
|
18
|
-
- What I'd do differently:
|
|
19
|
-
- Rule to add:
|
|
20
|
-
- Iteration — Next best recommendations (ranked, top 3):
|
|
21
|
-
1. <primary — strongest next move>
|
|
22
|
-
2. <alternative — different angle>
|
|
23
|
-
3. <alternative — smaller/larger scope>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
If there's a "Rule to add", create an instinct YAML file with 0.6 starting confidence in the project's instinct directory.
|
|
27
|
-
|
|
28
|
-
The "Iteration — Next best recommendations" field is the Law 6 handoff. List the **top 3 ranked** core-development moves — what to build, fix, refactor, or investigate next so the feature/system advances. Item #1 is the strongest; #2 and #3 are alternatives the user can pivot to. NOT git steps (commit, push, PR), NOT verification re-runs, NOT deploy actions — those belong in the end-of-run summary.
|
|
29
|
-
|
|
30
|
-
Format per item: `<verb> <object at path:line> (<why, one clause grounded in current context>)`.
|
|
31
|
-
|
|
32
|
-
Rules: always exactly 3 distinct directions, not padding. If fewer real moves exist, fill remaining slots with `None — goal met from this angle.` If the goal is fully met across all angles, write `1. None — goal met, stop.` and omit #2 and #3.
|
|
33
|
-
|
|
34
|
-
## Step 2: Analyze Observations
|
|
35
|
-
|
|
36
|
-
Check `~/.claude/instincts/` for the current project (detect via git root → SHA-256 first 12 chars).
|
|
37
|
-
|
|
38
|
-
Look at `~/.claude/instincts/<hash>/observations.jsonl`. If 20+ lines exist:
|
|
39
|
-
|
|
40
|
-
1. Read the last 500 lines
|
|
41
|
-
2. Read existing instinct `*.yaml` files (project + global)
|
|
42
|
-
3. Detect patterns:
|
|
43
|
-
- User corrections → "don't do X" instincts
|
|
44
|
-
- Error→fix sequences → "when X fails, try Y"
|
|
45
|
-
- Repeated workflows (3+ times) → "for X, do A→B→C"
|
|
46
|
-
- Tool preferences → "use tool Y for task X"
|
|
47
|
-
4. Create/update instinct YAML files
|
|
48
|
-
5. Be conservative: only create instincts for 3+ observations of the same pattern
|
|
49
|
-
|
|
50
|
-
If fewer than 20 observations, skip analysis and note the count.
|
|
51
|
-
|
|
52
|
-
### Multi-Agent Analysis (500+ observations)
|
|
53
|
-
|
|
54
|
-
When observation backlog is large, parallelize:
|
|
55
|
-
- **Agent 1:** User corrections + error→fix patterns
|
|
56
|
-
- **Agent 2:** Repeated workflows + tool preferences
|
|
57
|
-
- **Agent 3:** Cross-reference existing instincts for updates
|
|
58
|
-
|
|
59
|
-
Merge results and deduplicate before writing YAML files.
|
|
60
|
-
|
|
61
|
-
## Step 3: Show Status
|
|
62
|
-
|
|
63
|
-
Display all instincts for the current project + global:
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
=== continuous-improvement ===
|
|
67
|
-
|
|
68
|
-
## Level: [CAPTURE | ANALYZE | SUGGEST | AUTO-APPLY]
|
|
69
|
-
|
|
70
|
-
## Session Reflection
|
|
71
|
-
- What worked: [from this session]
|
|
72
|
-
- What failed: [from this session]
|
|
73
|
-
- What I'd do differently: [from this session]
|
|
74
|
-
- Rule to add: [captured as instinct]
|
|
75
|
-
- Iteration — Next best recommendations (ranked, top 3):
|
|
76
|
-
1. [primary core-development move]
|
|
77
|
-
2. [alternative angle]
|
|
78
|
-
3. [alternative scope]
|
|
79
|
-
|
|
80
|
-
## Learning
|
|
81
|
-
NEW [instinct-id] [domain] [confidence] (from reflection)
|
|
82
|
-
↑ [instinct-id] [domain] [old]→[new] (+N observations)
|
|
83
|
-
|
|
84
|
-
## Instincts — [project-name] ([hash])
|
|
85
|
-
● [0.85] instinct-id domain auto-apply
|
|
86
|
-
◐ [0.60] instinct-id domain suggest
|
|
87
|
-
○ [0.35] instinct-id domain silent
|
|
88
|
-
|
|
89
|
-
## Instincts — global
|
|
90
|
-
● [0.90] instinct-id domain auto-apply
|
|
91
|
-
|
|
92
|
-
## Next
|
|
93
|
-
- Keep working — hooks capture automatically
|
|
94
|
-
- System auto-levels as instincts gain confidence
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
If no instincts or observations exist yet, explain this is expected — the system is in CAPTURE level and will create instincts after 20+ observations accumulate.
|
|
98
|
-
|
|
99
|
-
## Subcommands
|
|
100
|
-
|
|
101
|
-
### `/continuous-improvement weekly`
|
|
102
|
-
|
|
103
|
-
Set up a weekly analysis schedule:
|
|
104
|
-
1. Create a cron/loop schedule that runs `/continuous-improvement analyze` every 7 days
|
|
105
|
-
2. Confirm the schedule to the user
|
|
106
|
-
3. Show next scheduled run date
|
|
107
|
-
|
|
108
|
-
### `/continuous-improvement always-on`
|
|
109
|
-
|
|
110
|
-
Toggle always-on mode for the current project:
|
|
111
|
-
1. Find project hash
|
|
112
|
-
2. Create/update `~/.claude/instincts/<hash>/config.yaml` with `always_on: true|false`
|
|
113
|
-
3. Confirm the change
|
|
114
|
-
|
|
115
|
-
**Default is off** — observations accumulate silently, analysis only runs when you ask.
|
|
1
|
+
---
|
|
2
|
+
name: continuous-improvement
|
|
3
|
+
description: "Reflect on the current session, analyze observations for patterns, and show instinct status. Runs on-demand to save tokens."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /continuous-improvement
|
|
7
|
+
|
|
8
|
+
Run this when you want to reflect and learn — not every session. Three steps in order.
|
|
9
|
+
|
|
10
|
+
## Step 1: Reflect
|
|
11
|
+
|
|
12
|
+
Generate a reflection for this session based on what happened:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
## Reflection — [Date]
|
|
16
|
+
- What worked:
|
|
17
|
+
- What failed:
|
|
18
|
+
- What I'd do differently:
|
|
19
|
+
- Rule to add:
|
|
20
|
+
- Iteration — Next best recommendations (ranked, top 3):
|
|
21
|
+
1. <primary — strongest next move>
|
|
22
|
+
2. <alternative — different angle>
|
|
23
|
+
3. <alternative — smaller/larger scope>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
If there's a "Rule to add", create an instinct YAML file with 0.6 starting confidence in the project's instinct directory.
|
|
27
|
+
|
|
28
|
+
The "Iteration — Next best recommendations" field is the Law 6 handoff. List the **top 3 ranked** core-development moves — what to build, fix, refactor, or investigate next so the feature/system advances. Item #1 is the strongest; #2 and #3 are alternatives the user can pivot to. NOT git steps (commit, push, PR), NOT verification re-runs, NOT deploy actions — those belong in the end-of-run summary.
|
|
29
|
+
|
|
30
|
+
Format per item: `<verb> <object at path:line> (<why, one clause grounded in current context>)`.
|
|
31
|
+
|
|
32
|
+
Rules: always exactly 3 distinct directions, not padding. If fewer real moves exist, fill remaining slots with `None — goal met from this angle.` If the goal is fully met across all angles, write `1. None — goal met, stop.` and omit #2 and #3.
|
|
33
|
+
|
|
34
|
+
## Step 2: Analyze Observations
|
|
35
|
+
|
|
36
|
+
Check `~/.claude/instincts/` for the current project (detect via git root → SHA-256 first 12 chars).
|
|
37
|
+
|
|
38
|
+
Look at `~/.claude/instincts/<hash>/observations.jsonl`. If 20+ lines exist:
|
|
39
|
+
|
|
40
|
+
1. Read the last 500 lines
|
|
41
|
+
2. Read existing instinct `*.yaml` files (project + global)
|
|
42
|
+
3. Detect patterns:
|
|
43
|
+
- User corrections → "don't do X" instincts
|
|
44
|
+
- Error→fix sequences → "when X fails, try Y"
|
|
45
|
+
- Repeated workflows (3+ times) → "for X, do A→B→C"
|
|
46
|
+
- Tool preferences → "use tool Y for task X"
|
|
47
|
+
4. Create/update instinct YAML files
|
|
48
|
+
5. Be conservative: only create instincts for 3+ observations of the same pattern
|
|
49
|
+
|
|
50
|
+
If fewer than 20 observations, skip analysis and note the count.
|
|
51
|
+
|
|
52
|
+
### Multi-Agent Analysis (500+ observations)
|
|
53
|
+
|
|
54
|
+
When observation backlog is large, parallelize:
|
|
55
|
+
- **Agent 1:** User corrections + error→fix patterns
|
|
56
|
+
- **Agent 2:** Repeated workflows + tool preferences
|
|
57
|
+
- **Agent 3:** Cross-reference existing instincts for updates
|
|
58
|
+
|
|
59
|
+
Merge results and deduplicate before writing YAML files.
|
|
60
|
+
|
|
61
|
+
## Step 3: Show Status
|
|
62
|
+
|
|
63
|
+
Display all instincts for the current project + global:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
=== continuous-improvement ===
|
|
67
|
+
|
|
68
|
+
## Level: [CAPTURE | ANALYZE | SUGGEST | AUTO-APPLY]
|
|
69
|
+
|
|
70
|
+
## Session Reflection
|
|
71
|
+
- What worked: [from this session]
|
|
72
|
+
- What failed: [from this session]
|
|
73
|
+
- What I'd do differently: [from this session]
|
|
74
|
+
- Rule to add: [captured as instinct]
|
|
75
|
+
- Iteration — Next best recommendations (ranked, top 3):
|
|
76
|
+
1. [primary core-development move]
|
|
77
|
+
2. [alternative angle]
|
|
78
|
+
3. [alternative scope]
|
|
79
|
+
|
|
80
|
+
## Learning
|
|
81
|
+
NEW [instinct-id] [domain] [confidence] (from reflection)
|
|
82
|
+
↑ [instinct-id] [domain] [old]→[new] (+N observations)
|
|
83
|
+
|
|
84
|
+
## Instincts — [project-name] ([hash])
|
|
85
|
+
● [0.85] instinct-id domain auto-apply
|
|
86
|
+
◐ [0.60] instinct-id domain suggest
|
|
87
|
+
○ [0.35] instinct-id domain silent
|
|
88
|
+
|
|
89
|
+
## Instincts — global
|
|
90
|
+
● [0.90] instinct-id domain auto-apply
|
|
91
|
+
|
|
92
|
+
## Next
|
|
93
|
+
- Keep working — hooks capture automatically
|
|
94
|
+
- System auto-levels as instincts gain confidence
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
If no instincts or observations exist yet, explain this is expected — the system is in CAPTURE level and will create instincts after 20+ observations accumulate.
|
|
98
|
+
|
|
99
|
+
## Subcommands
|
|
100
|
+
|
|
101
|
+
### `/continuous-improvement weekly`
|
|
102
|
+
|
|
103
|
+
Set up a weekly analysis schedule:
|
|
104
|
+
1. Create a cron/loop schedule that runs `/continuous-improvement analyze` every 7 days
|
|
105
|
+
2. Confirm the schedule to the user
|
|
106
|
+
3. Show next scheduled run date
|
|
107
|
+
|
|
108
|
+
### `/continuous-improvement always-on`
|
|
109
|
+
|
|
110
|
+
Toggle always-on mode for the current project:
|
|
111
|
+
1. Find project hash
|
|
112
|
+
2. Create/update `~/.claude/instincts/<hash>/config.yaml` with `always_on: true|false`
|
|
113
|
+
3. Confirm the change
|
|
114
|
+
|
|
115
|
+
**Default is off** — observations accumulate silently, analysis only runs when you ask.
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dashboard
|
|
3
|
-
description: Visual dashboard showing instinct health, observation stats, and learning progress
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Instinct Dashboard
|
|
7
|
-
|
|
8
|
-
Generate a visual dashboard for this project's continuous-improvement status.
|
|
9
|
-
|
|
10
|
-
## Instructions
|
|
11
|
-
|
|
12
|
-
1. **Find project hash:** Run `git rev-parse --show-toplevel 2>/dev/null`, then SHA-256 first 12 chars
|
|
13
|
-
2. **Read observations:** Count lines in `~/.claude/instincts/<hash>/observations.jsonl`
|
|
14
|
-
3. **Read instincts:** Load all `*.yaml` files from project dir + `global/`
|
|
15
|
-
4. **Read instinct packs:** Check if any packs from `instinct-packs/` have been loaded
|
|
16
|
-
|
|
17
|
-
## Display Format
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
21
|
-
║ continuous-improvement Dashboard ║
|
|
22
|
-
╠══════════════════════════════════════════════════════════════╣
|
|
23
|
-
║ ║
|
|
24
|
-
║ Project: <name> Level: <CAPTURE|ANALYZE|...> ║
|
|
25
|
-
║ Sessions: ~<obs/10> Mode: <beginner|expert> ║
|
|
26
|
-
║ ║
|
|
27
|
-
║ ┌─ Observations ────────────────────────────────────────┐ ║
|
|
28
|
-
║ │ Total: <n> Unprocessed: <n> Last: <date> │ ║
|
|
29
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
30
|
-
║ ║
|
|
31
|
-
║ ┌─ Instincts ───────────────────────────────────────────┐ ║
|
|
32
|
-
║ │ Total: <n> │ ║
|
|
33
|
-
║ │ ████████░░ Auto-apply (0.7+): <n> │ ║
|
|
34
|
-
║ │ █████░░░░░ Suggest (0.5-0.69): <n> │ ║
|
|
35
|
-
║ │ ██░░░░░░░░ Silent (< 0.5): <n> │ ║
|
|
36
|
-
║ │ Global: <n> Project: <n> │ ║
|
|
37
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
38
|
-
║ ║
|
|
39
|
-
║ ┌─ Top Instincts ───────────────────────────────────────┐ ║
|
|
40
|
-
║ │ <list top 5 instincts by confidence with bars> │ ║
|
|
41
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
42
|
-
║ ║
|
|
43
|
-
║ ┌─ Health ──────────────────────────────────────────────┐ ║
|
|
44
|
-
║ │ Stale (30+ days): <n> Decaying: <n> │ ║
|
|
45
|
-
║ │ Recently reinforced: <n> │ ║
|
|
46
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
47
|
-
║ ║
|
|
48
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## After Display
|
|
52
|
-
|
|
53
|
-
- If stale instincts > 0: suggest reviewing them
|
|
54
|
-
- If unprocessed observations > 20: suggest running analysis
|
|
55
|
-
- If no instincts exist: explain the auto-leveling timeline
|
|
56
|
-
- Show available instinct packs that haven't been loaded yet
|
|
1
|
+
---
|
|
2
|
+
name: dashboard
|
|
3
|
+
description: Visual dashboard showing instinct health, observation stats, and learning progress
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Instinct Dashboard
|
|
7
|
+
|
|
8
|
+
Generate a visual dashboard for this project's continuous-improvement status.
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
1. **Find project hash:** Run `git rev-parse --show-toplevel 2>/dev/null`, then SHA-256 first 12 chars
|
|
13
|
+
2. **Read observations:** Count lines in `~/.claude/instincts/<hash>/observations.jsonl`
|
|
14
|
+
3. **Read instincts:** Load all `*.yaml` files from project dir + `global/`
|
|
15
|
+
4. **Read instinct packs:** Check if any packs from `instinct-packs/` have been loaded
|
|
16
|
+
|
|
17
|
+
## Display Format
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
21
|
+
║ continuous-improvement Dashboard ║
|
|
22
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
23
|
+
║ ║
|
|
24
|
+
║ Project: <name> Level: <CAPTURE|ANALYZE|...> ║
|
|
25
|
+
║ Sessions: ~<obs/10> Mode: <beginner|expert> ║
|
|
26
|
+
║ ║
|
|
27
|
+
║ ┌─ Observations ────────────────────────────────────────┐ ║
|
|
28
|
+
║ │ Total: <n> Unprocessed: <n> Last: <date> │ ║
|
|
29
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
30
|
+
║ ║
|
|
31
|
+
║ ┌─ Instincts ───────────────────────────────────────────┐ ║
|
|
32
|
+
║ │ Total: <n> │ ║
|
|
33
|
+
║ │ ████████░░ Auto-apply (0.7+): <n> │ ║
|
|
34
|
+
║ │ █████░░░░░ Suggest (0.5-0.69): <n> │ ║
|
|
35
|
+
║ │ ██░░░░░░░░ Silent (< 0.5): <n> │ ║
|
|
36
|
+
║ │ Global: <n> Project: <n> │ ║
|
|
37
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
38
|
+
║ ║
|
|
39
|
+
║ ┌─ Top Instincts ───────────────────────────────────────┐ ║
|
|
40
|
+
║ │ <list top 5 instincts by confidence with bars> │ ║
|
|
41
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
42
|
+
║ ║
|
|
43
|
+
║ ┌─ Health ──────────────────────────────────────────────┐ ║
|
|
44
|
+
║ │ Stale (30+ days): <n> Decaying: <n> │ ║
|
|
45
|
+
║ │ Recently reinforced: <n> │ ║
|
|
46
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
47
|
+
║ ║
|
|
48
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## After Display
|
|
52
|
+
|
|
53
|
+
- If stale instincts > 0: suggest reviewing them
|
|
54
|
+
- If unprocessed observations > 20: suggest running analysis
|
|
55
|
+
- If no instincts exist: explain the auto-leveling timeline
|
|
56
|
+
- Show available instinct packs that haven't been loaded yet
|
|
@@ -65,7 +65,7 @@ Appended 12 instinct(s) to /Users/.../instincts/0af156594b39/instincts.jsonl
|
|
|
65
65
|
If `tool_complete rows: 0`, the bash-fallback hook is active (no jq AND the Node observer is not on PATH) and only emits `tool_start` events. Two remediation paths:
|
|
66
66
|
|
|
67
67
|
- **Install jq** — `winget install jqlang.jq` (Windows), `brew install jq` (macOS), `apt install jq` (Linux).
|
|
68
|
-
- **Wire the Node observer** — ensure `
|
|
68
|
+
- **Wire the Node observer** — ensure the installed observer shim `instincts/bin/observe.mjs` (copied from `bin/observe.mjs`) sits beside the active hook script.
|
|
69
69
|
|
|
70
70
|
Both are documented in the WARNING the classifier prints on a thin-schema host.
|
|
71
71
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seven-laws
|
|
3
|
-
description: "Brand-aligned alias for /continuous-improvement. Reflect on the current session, analyze observations for patterns, and show instinct status under the 7 Laws of AI Agent Discipline."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /seven-laws
|
|
7
|
-
|
|
8
|
-
Brand-aligned alias for [`/continuous-improvement`](continuous-improvement.md). Both commands run the exact same three-step workflow under the 7 Laws of AI Agent Discipline:
|
|
9
|
-
|
|
10
|
-
1. **Reflect** (Law 5) — generate a reflection block for this session.
|
|
11
|
-
2. **Analyze** (Law 7) — process pending observations into instincts.
|
|
12
|
-
3. **Status** — show all instincts for the project + global with confidence and current level.
|
|
13
|
-
|
|
14
|
-
Run the workflow defined in [`continuous-improvement.md`](continuous-improvement.md). Subcommands `weekly` and `always-on` work identically.
|
|
15
|
-
|
|
16
|
-
`/continuous-improvement` remains supported indefinitely for backward compatibility. Prefer `/seven-laws` going forward — it matches the brand and the SKILL.md spec.
|
|
1
|
+
---
|
|
2
|
+
name: seven-laws
|
|
3
|
+
description: "Brand-aligned alias for /continuous-improvement. Reflect on the current session, analyze observations for patterns, and show instinct status under the 7 Laws of AI Agent Discipline."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /seven-laws
|
|
7
|
+
|
|
8
|
+
Brand-aligned alias for [`/continuous-improvement`](continuous-improvement.md). Both commands run the exact same three-step workflow under the 7 Laws of AI Agent Discipline:
|
|
9
|
+
|
|
10
|
+
1. **Reflect** (Law 5) — generate a reflection block for this session.
|
|
11
|
+
2. **Analyze** (Law 7) — process pending observations into instincts.
|
|
12
|
+
3. **Status** — show all instincts for the project + global with confidence and current level.
|
|
13
|
+
|
|
14
|
+
Run the workflow defined in [`continuous-improvement.md`](continuous-improvement.md). Subcommands `weekly` and `always-on` work identically.
|
|
15
|
+
|
|
16
|
+
`/continuous-improvement` remains supported indefinitely for backward compatibility. Prefer `/seven-laws` going forward — it matches the brand and the SKILL.md spec.
|
|
@@ -17,7 +17,7 @@ The 7 Laws define *what* discipline must be applied. `/superpowers` decides *whi
|
|
|
17
17
|
| `obra/superpowers` (Jesse Vincent) | vendored at `third-party/superpowers/`, pinned SHA `f2cbfbe` (v5.1.0) | `superpowers:brainstorming`, `:writing-plans`, `:executing-plans`, `:test-driven-development`, `:systematic-debugging`, `:requesting-code-review`, `:receiving-code-review`, `:verification-before-completion`, `:dispatching-parallel-agents`, `:using-git-worktrees`, `:finishing-a-development-branch`, `:subagent-driven-development`, `:writing-skills`, `:using-superpowers` |
|
|
18
18
|
| `addyosmani/agent-skills` | vendored at `third-party/addy-agent-skills/`, pinned SHA `742dca5` (v1.0.0) | `spec-driven-development`, `source-driven-development`, `context-engineering`, `idea-refine`, `incremental-implementation`, `code-review-and-quality`, `code-simplification`, `security-and-hardening`, `debugging-and-error-recovery`, `performance-optimization`, `api-and-interface-design`, `frontend-ui-engineering`, `browser-testing-with-devtools`, `ci-cd-and-automation`, `deprecation-and-migration`, `documentation-and-adrs`, `git-workflow-and-versioning`, `planning-and-task-breakdown`, `shipping-and-launch` |
|
|
19
19
|
| `ruflo-swarm` (ruvnet) | vendored at `third-party/ruflo-swarm/`, pinned SHA `addb5cd` (v0.2.0) | `swarm-init`, `monitor-stream`; `swarm_*` and `agent_*` MCP tools; `/swarm`, `/watch` |
|
|
20
|
-
| `oh-my-claudecode` (Yeachan-Heo) | vendored at `third-party/oh-my-claudecode/`, pinned SHA `aacde3e` (v4.13.6) |
|
|
20
|
+
| `oh-my-claudecode` (Yeachan-Heo) | vendored at `third-party/oh-my-claudecode/`, pinned SHA `aacde3e` (v4.13.6) | 38 skills + 19 agents — `release`, `ultrawork`, `ultraqa`, `team`, `trace`, `visual-verdict`, `debug`, `deep-dive`, `deep-interview`, `autopilot`, `autoresearch`, plus a separate `ralph` (overlaps with our `/ralph` — see "Distinct variants" below) |
|
|
21
21
|
|
|
22
22
|
PM coverage (product-management skills) lives **outside** this marketplace. If you need it, install [`phuryn/pm-skills`](https://github.com/phuryn/pm-skills) separately via Claude Code's host marketplace; the dispatcher names it as a routing target without pre-resolving the namespace. See [docs/THIRD_PARTY.md § Routing in /superpowers](../docs/THIRD_PARTY.md#routing-in-superpowers).
|
|
23
23
|
|