claude-alfred 0.3.8 → 0.3.9
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.ja.md +1 -5
- package/README.md +1 -5
- package/dist/cli.mjs +2 -2
- package/dist/{directives-DjcVEEC8.mjs → directives-COYpcrJX.mjs} +1 -1
- package/dist/{dispatcher-BjpWdTBs.mjs → dispatcher-VEw4zMBd.mjs} +6 -6
- package/dist/{post-tool-CfnMwY6j.mjs → post-tool-BYBYLgt7.mjs} +4 -4
- package/dist/{post-tool-O8S54qat.mjs → post-tool-BdPgHCy0.mjs} +3 -3
- package/dist/{pre-compact-Cdjtld4A.mjs → pre-compact-CvLJa1rL.mjs} +1 -1
- package/dist/{pre-tool-KpwIhe2F.mjs → pre-tool-QmdClB53.mjs} +2 -2
- package/dist/{review-gate-DM_o8MKx.mjs → review-gate-Bst0t7jH.mjs} +1 -1
- package/dist/{server-BheF_pZr.mjs → server-BTRnvbYy.mjs} +4 -4
- package/dist/{session-start-Bul0GicD.mjs → session-start-ctDzNSg-.mjs} +3 -5
- package/dist/{stop-BQzq19WO.mjs → stop-B2wfqVpM.mjs} +2 -2
- package/dist/{user-prompt-Bzfgl80c.mjs → user-prompt-BqSQPh2W.mjs} +2 -2
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -157,10 +157,6 @@ npm update -g claude-alfred # CLI、hooks、MCP サーバー、ダッシ
|
|
|
157
157
|
| スキル | やること |
|
|
158
158
|
|--------|----------|
|
|
159
159
|
| `/alfred:init` | プロジェクト初期化。マルチエージェントでコードベースを探索し、ステアリングドキュメントを生成 |
|
|
160
|
-
| `/alfred:quarters` | Claude Code のプロジェクト設定ウィザード(settings, hooks, rules) |
|
|
161
|
-
| `/alfred:furnish` | 設定ファイルを1つ作成・ブラッシュアップ(skill, rule, hook, CLAUDE.md 等) |
|
|
162
|
-
| `/alfred:valet` | Anthropic 公式ガイドに基づくスキル品質監査。6カテゴリ21チェック |
|
|
163
|
-
| `/alfred:concierge` | 全機能のクイックリファレンス |
|
|
164
160
|
|
|
165
161
|
## MCP ツール
|
|
166
162
|
|
|
@@ -176,7 +172,7 @@ npm update -g claude-alfred # CLI、hooks、MCP サーバー、ダッシ
|
|
|
176
172
|
|
|
177
173
|
| イベント | 動作 |
|
|
178
174
|
|----------|------|
|
|
179
|
-
| SessionStart | Spec コンテキスト復元、ナレッジ同期、セットアップ提案(`/alfred:init
|
|
175
|
+
| SessionStart | Spec コンテキスト復元、ナレッジ同期、セットアップ提案(`/alfred:init`) |
|
|
180
176
|
| UserPromptSubmit | セマンティック検索 + スキル提案 + Spec enforcement(Spec なし実装ブロック、未承認 M/L/XL ブロック) |
|
|
181
177
|
| PreToolUse | 3層 enforcement — review gate, intent guard, approval gate。ゲートが有効な間は Edit/Write をブロック |
|
|
182
178
|
| PostToolUse | tasks.md / session.md の進捗自動更新。Wave 完了検知とレビューゲート設定。コミット後のドリフト検出。PR マージ後の `/alfred:harvest` 提案、大きな参照ファイル読み込み時の `/alfred:archive` 提案 |
|
package/README.md
CHANGED
|
@@ -157,10 +157,6 @@ Run `alfred doctor` to verify both are in sync.
|
|
|
157
157
|
| Skill | What it does |
|
|
158
158
|
|-------|-------------|
|
|
159
159
|
| `/alfred:init` | Project onboarding. Multi-agent codebase exploration, steering docs, template setup |
|
|
160
|
-
| `/alfred:quarters` | Project-wide Claude Code configuration wizard (settings, hooks, rules) |
|
|
161
|
-
| `/alfred:furnish` | Creates or polishes a single config file (skill, rule, hook, CLAUDE.md, etc.) |
|
|
162
|
-
| `/alfred:valet` | Audits skills against Anthropic's official guide. Scores 21 checks across 6 categories |
|
|
163
|
-
| `/alfred:concierge` | Quick reference for all alfred capabilities |
|
|
164
160
|
|
|
165
161
|
## MCP tools
|
|
166
162
|
|
|
@@ -176,7 +172,7 @@ These run automatically. You don't configure them.
|
|
|
176
172
|
|
|
177
173
|
| Event | What happens |
|
|
178
174
|
|-------|-------------|
|
|
179
|
-
| SessionStart | Restores spec context, syncs knowledge index, suggests missing setup (`/alfred:init
|
|
175
|
+
| SessionStart | Restores spec context, syncs knowledge index, suggests missing setup (`/alfred:init`) |
|
|
180
176
|
| UserPromptSubmit | Semantic search + skill suggestions + spec enforcement (blocks implementation without a spec, blocks unapproved M/L/XL) |
|
|
181
177
|
| PreToolUse | Three-layer enforcement — review gate, intent guard, approval gate. Blocks Edit/Write when gates are active |
|
|
182
178
|
| PostToolUse | Auto-updates task progress in tasks.md and session.md. Detects wave completion and sets review gates. Drift detection after commits. Suggests `/alfred:harvest` after PR merge, `/alfred:archive` for large reference files |
|
package/dist/cli.mjs
CHANGED
|
@@ -371,7 +371,7 @@ const main = defineCommand({
|
|
|
371
371
|
async run() {
|
|
372
372
|
const { Store } = await import("./store-8O9WUwMu.mjs").then((n) => (n.t(), n.r));
|
|
373
373
|
const { Embedder } = await import("./embedder-D3hJoryD.mjs");
|
|
374
|
-
const { serveMCP } = await import("./server-
|
|
374
|
+
const { serveMCP } = await import("./server-BTRnvbYy.mjs");
|
|
375
375
|
const store = Store.openDefault();
|
|
376
376
|
let emb = null;
|
|
377
377
|
try {
|
|
@@ -422,7 +422,7 @@ const main = defineCommand({
|
|
|
422
422
|
description: "Event name"
|
|
423
423
|
} },
|
|
424
424
|
async run({ args }) {
|
|
425
|
-
const { runHook } = await import("./dispatcher-
|
|
425
|
+
const { runHook } = await import("./dispatcher-VEw4zMBd.mjs").then((n) => (n.i(), n.t));
|
|
426
426
|
await runHook(args.event);
|
|
427
427
|
}
|
|
428
428
|
}),
|
|
@@ -3,7 +3,7 @@ import { n as __esmMin } from "./chunk-CAm0Jl7e.mjs";
|
|
|
3
3
|
import { c as incrementHitCount, f as searchKnowledgeKeyword, i as getKnowledgeByIDs, l as init_knowledge } from "./knowledge-C7rEfFSX.mjs";
|
|
4
4
|
import { i as vectorSearchKnowledge, r as init_vectors } from "./vectors-C3yIO_A5.mjs";
|
|
5
5
|
import { a as subTypeHalfLife, i as subTypeBoost, n as init_fts, r as searchKnowledgeFTS } from "./fts-DUZkPJPD.mjs";
|
|
6
|
-
import { i as init_dispatcher, n as emitAdditionalContext } from "./dispatcher-
|
|
6
|
+
import { i as init_dispatcher, n as emitAdditionalContext } from "./dispatcher-VEw4zMBd.mjs";
|
|
7
7
|
//#region src/mcp/helpers.ts
|
|
8
8
|
function truncate(s, maxLen) {
|
|
9
9
|
const runes = [...s];
|
|
@@ -89,27 +89,27 @@ async function runHook(event) {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
async function handleSessionStart(ev, signal) {
|
|
92
|
-
const { sessionStart } = await import("./session-start-
|
|
92
|
+
const { sessionStart } = await import("./session-start-ctDzNSg-.mjs");
|
|
93
93
|
await sessionStart(ev, signal);
|
|
94
94
|
}
|
|
95
95
|
async function handlePreCompact(ev, signal) {
|
|
96
|
-
const { preCompact } = await import("./pre-compact-
|
|
96
|
+
const { preCompact } = await import("./pre-compact-CvLJa1rL.mjs");
|
|
97
97
|
await preCompact(ev, signal);
|
|
98
98
|
}
|
|
99
99
|
async function handleUserPromptSubmit(ev, signal) {
|
|
100
|
-
const { userPromptSubmit } = await import("./user-prompt-
|
|
100
|
+
const { userPromptSubmit } = await import("./user-prompt-BqSQPh2W.mjs");
|
|
101
101
|
await userPromptSubmit(ev, signal);
|
|
102
102
|
}
|
|
103
103
|
async function handlePostToolUse(ev, signal) {
|
|
104
|
-
const { postToolUse } = await import("./post-tool-
|
|
104
|
+
const { postToolUse } = await import("./post-tool-BYBYLgt7.mjs");
|
|
105
105
|
await postToolUse(ev, signal);
|
|
106
106
|
}
|
|
107
107
|
async function handlePreToolUse(ev, _signal) {
|
|
108
|
-
const { preToolUse } = await import("./pre-tool-
|
|
108
|
+
const { preToolUse } = await import("./pre-tool-QmdClB53.mjs");
|
|
109
109
|
await preToolUse(ev);
|
|
110
110
|
}
|
|
111
111
|
async function handleStop(ev, _signal) {
|
|
112
|
-
const { stop } = await import("./stop-
|
|
112
|
+
const { stop } = await import("./stop-B2wfqVpM.mjs");
|
|
113
113
|
await stop(ev);
|
|
114
114
|
}
|
|
115
115
|
var init_dispatcher = __esmMin((() => {}));
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "./types-BBT-j5-a.mjs";
|
|
3
3
|
import "./audit-BoZ1ny8J.mjs";
|
|
4
|
-
import "./dispatcher-
|
|
5
|
-
import "./directives-
|
|
6
|
-
import { n as init_post_tool, o as postToolUse } from "./post-tool-
|
|
4
|
+
import "./dispatcher-VEw4zMBd.mjs";
|
|
5
|
+
import "./directives-COYpcrJX.mjs";
|
|
6
|
+
import { n as init_post_tool, o as postToolUse } from "./post-tool-BdPgHCy0.mjs";
|
|
7
7
|
import "./store-8O9WUwMu.mjs";
|
|
8
8
|
import "./state-7LLZFgmO.mjs";
|
|
9
|
-
import "./review-gate-
|
|
9
|
+
import "./review-gate-Bst0t7jH.mjs";
|
|
10
10
|
init_post_tool();
|
|
11
11
|
export { postToolUse };
|
|
@@ -5,11 +5,11 @@ import { n as init_audit, t as appendAudit } from "./audit-BoZ1ny8J.mjs";
|
|
|
5
5
|
import { a as getKnowledgeStats, d as promoteSubType, l as init_knowledge, m as upsertKnowledge, o as getPromotionCandidates, r as getKnowledgeByID } from "./knowledge-C7rEfFSX.mjs";
|
|
6
6
|
import { n as init_fts, r as searchKnowledgeFTS, t as detectKnowledgeConflicts } from "./fts-DUZkPJPD.mjs";
|
|
7
7
|
import { n as init_project, t as detectProject } from "./project-DCKke4_Q.mjs";
|
|
8
|
-
import { a as notifyUser, i as init_dispatcher, r as extractSection } from "./dispatcher-
|
|
9
|
-
import { a as trackHitCounts, i as searchPipeline, n as init_directives, o as truncate, r as init_helpers, t as emitDirectives } from "./directives-
|
|
8
|
+
import { a as notifyUser, i as init_dispatcher, r as extractSection } from "./dispatcher-VEw4zMBd.mjs";
|
|
9
|
+
import { a as trackHitCounts, i as searchPipeline, n as init_directives, o as truncate, r as init_helpers, t as emitDirectives } from "./directives-COYpcrJX.mjs";
|
|
10
10
|
import { n as openDefaultCached, t as init_store } from "./store-8O9WUwMu.mjs";
|
|
11
11
|
import { c as readWaveProgress, i as parseWaveProgress, m as writeWaveProgress, n as addWorkedSlug, p as writeStateText, r as init_state, s as readStateText } from "./state-7LLZFgmO.mjs";
|
|
12
|
-
import { a as writeReviewGate, n as init_review_gate } from "./review-gate-
|
|
12
|
+
import { a as writeReviewGate, n as init_review_gate } from "./review-gate-Bst0t7jH.mjs";
|
|
13
13
|
import { mkdirSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
|
|
14
14
|
import { join } from "node:path";
|
|
15
15
|
import { createHash } from "node:crypto";
|
|
@@ -5,7 +5,7 @@ import { r as init_epic, s as syncTaskStatus } from "./epic-s_BVNu2z.mjs";
|
|
|
5
5
|
import { n as init_audit, t as appendAudit } from "./audit-BoZ1ny8J.mjs";
|
|
6
6
|
import { l as init_knowledge, m as upsertKnowledge } from "./knowledge-C7rEfFSX.mjs";
|
|
7
7
|
import { n as init_project, t as detectProject } from "./project-DCKke4_Q.mjs";
|
|
8
|
-
import { a as notifyUser, i as init_dispatcher } from "./dispatcher-
|
|
8
|
+
import { a as notifyUser, i as init_dispatcher } from "./dispatcher-VEw4zMBd.mjs";
|
|
9
9
|
import { n as openDefaultCached, t as init_store } from "./store-8O9WUwMu.mjs";
|
|
10
10
|
import { readFileSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { join } from "node:path";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { n as __esmMin } from "./chunk-CAm0Jl7e.mjs";
|
|
3
|
-
import "./dispatcher-
|
|
3
|
+
import "./dispatcher-VEw4zMBd.mjs";
|
|
4
4
|
import { a as readLastIntent, r as init_state, t as IMPLEMENT_INTENTS } from "./state-7LLZFgmO.mjs";
|
|
5
|
-
import { c as denyTool, d as isSpecFilePath, f as tryReadActiveSpec, n as init_review_gate, r as isGateActive, u as init_spec_guard } from "./review-gate-
|
|
5
|
+
import { c as denyTool, d as isSpecFilePath, f as tryReadActiveSpec, n as init_review_gate, r as isGateActive, u as init_spec_guard } from "./review-gate-Bst0t7jH.mjs";
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
//#region src/hooks/pre-tool.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { n as __esmMin } from "./chunk-CAm0Jl7e.mjs";
|
|
3
|
-
import { i as init_dispatcher, r as extractSection } from "./dispatcher-
|
|
3
|
+
import { i as init_dispatcher, r as extractSection } from "./dispatcher-VEw4zMBd.mjs";
|
|
4
4
|
import { f as writeStateJSON, o as readStateJSON, r as init_state } from "./state-7LLZFgmO.mjs";
|
|
5
5
|
import { readFileSync } from "node:fs";
|
|
6
6
|
import { join, resolve } from "node:path";
|
|
@@ -6,12 +6,12 @@ import { n as init_audit, t as appendAudit } from "./audit-BoZ1ny8J.mjs";
|
|
|
6
6
|
import { i as getKnowledgeByIDs, l as init_knowledge } from "./knowledge-C7rEfFSX.mjs";
|
|
7
7
|
import { i as vectorSearchKnowledge, r as init_vectors } from "./vectors-C3yIO_A5.mjs";
|
|
8
8
|
import { i as subTypeBoost, n as init_fts, r as searchKnowledgeFTS } from "./fts-DUZkPJPD.mjs";
|
|
9
|
-
import "./dispatcher-
|
|
10
|
-
import { o as truncate, r as init_helpers } from "./directives-
|
|
11
|
-
import { c as handleLedger, l as init_ledger, n as init_post_tool, s as post_tool_exports } from "./post-tool-
|
|
9
|
+
import "./dispatcher-VEw4zMBd.mjs";
|
|
10
|
+
import { o as truncate, r as init_helpers } from "./directives-COYpcrJX.mjs";
|
|
11
|
+
import { c as handleLedger, l as init_ledger, n as init_post_tool, s as post_tool_exports } from "./post-tool-BdPgHCy0.mjs";
|
|
12
12
|
import "./store-8O9WUwMu.mjs";
|
|
13
13
|
import { c as readWaveProgress, m as writeWaveProgress, r as init_state } from "./state-7LLZFgmO.mjs";
|
|
14
|
-
import { a as writeReviewGate, i as readReviewGate, n as init_review_gate, t as clearReviewGate } from "./review-gate-
|
|
14
|
+
import { a as writeReviewGate, i as readReviewGate, n as init_review_gate, t as clearReviewGate } from "./review-gate-Bst0t7jH.mjs";
|
|
15
15
|
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
16
16
|
import { join, resolve } from "node:path";
|
|
17
17
|
import process$1 from "node:process";
|
|
@@ -3,8 +3,8 @@ import { n as __esmMin } from "./chunk-CAm0Jl7e.mjs";
|
|
|
3
3
|
import { c as readActiveState, o as init_types, s as readActive, t as SpecDir } from "./types-BBT-j5-a.mjs";
|
|
4
4
|
import { l as init_knowledge, m as upsertKnowledge, n as deleteOrphanKnowledge, s as getRecentDecisions, t as countKnowledge } from "./knowledge-C7rEfFSX.mjs";
|
|
5
5
|
import { n as init_project, t as detectProject } from "./project-DCKke4_Q.mjs";
|
|
6
|
-
import { a as notifyUser, i as init_dispatcher, r as extractSection } from "./dispatcher-
|
|
7
|
-
import { n as init_directives, o as truncate, r as init_helpers, t as emitDirectives } from "./directives-
|
|
6
|
+
import { a as notifyUser, i as init_dispatcher, r as extractSection } from "./dispatcher-VEw4zMBd.mjs";
|
|
7
|
+
import { n as init_directives, o as truncate, r as init_helpers, t as emitDirectives } from "./directives-COYpcrJX.mjs";
|
|
8
8
|
import { n as openDefaultCached, t as init_store } from "./store-8O9WUwMu.mjs";
|
|
9
9
|
import { r as init_state, u as resetWorkedSlugs } from "./state-7LLZFgmO.mjs";
|
|
10
10
|
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
@@ -26,13 +26,11 @@ async function sessionStart(ev, _signal) {
|
|
|
26
26
|
notifyUser("warning: knowledge sync failed: %s", err);
|
|
27
27
|
}
|
|
28
28
|
if (!existsSync(join(join(ev.cwd, ".alfred", "steering"), "product.md"))) notifyUser("tip: run `/alfred:init` to set up project steering docs, templates, and knowledge index");
|
|
29
|
-
const claudeDir = join(ev.cwd, ".claude");
|
|
30
|
-
if (!existsSync(join(claudeDir, "settings.json")) && existsSync(claudeDir)) notifyUser("tip: run `/alfred:quarters` for a guided Claude Code project setup (settings, hooks, rules)");
|
|
31
29
|
suggestLedgerReflect(store);
|
|
32
30
|
const items = [];
|
|
33
31
|
if (existsSync(join(ev.cwd, ".alfred"))) items.push({
|
|
34
32
|
level: "CONTEXT",
|
|
35
|
-
message: "If there is even a small chance an alfred skill applies to this task, invoke it.
|
|
33
|
+
message: "If there is even a small chance an alfred skill applies to this task, invoke it."
|
|
36
34
|
});
|
|
37
35
|
items.push(...buildSpecContextItems(ev.cwd, ev.source ?? "", store));
|
|
38
36
|
if (items.length > 0) emitDirectives("SessionStart", items);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { n as __esmMin } from "./chunk-CAm0Jl7e.mjs";
|
|
3
|
-
import "./dispatcher-
|
|
3
|
+
import "./dispatcher-VEw4zMBd.mjs";
|
|
4
4
|
import { l as readWorkedSlugs, r as init_state } from "./state-7LLZFgmO.mjs";
|
|
5
|
-
import { f as tryReadActiveSpec, l as hasUncheckedSelfReview, n as init_review_gate, o as blockStop, r as isGateActive, s as countUncheckedNextSteps, u as init_spec_guard } from "./review-gate-
|
|
5
|
+
import { f as tryReadActiveSpec, l as hasUncheckedSelfReview, n as init_review_gate, o as blockStop, r as isGateActive, s as countUncheckedNextSteps, u as init_spec_guard } from "./review-gate-Bst0t7jH.mjs";
|
|
6
6
|
//#region src/hooks/stop.ts
|
|
7
7
|
/**
|
|
8
8
|
* Stop handler:
|
|
@@ -3,8 +3,8 @@ import { n as __esmMin } from "./chunk-CAm0Jl7e.mjs";
|
|
|
3
3
|
import { c as readActiveState, o as init_types } from "./types-BBT-j5-a.mjs";
|
|
4
4
|
import { i as subTypeBoost, n as init_fts } from "./fts-DUZkPJPD.mjs";
|
|
5
5
|
import { Embedder, t as init_embedder } from "./embedder-D3hJoryD.mjs";
|
|
6
|
-
import "./dispatcher-
|
|
7
|
-
import { a as trackHitCounts, i as searchPipeline, n as init_directives, o as truncate, r as init_helpers, t as emitDirectives } from "./directives-
|
|
6
|
+
import "./dispatcher-VEw4zMBd.mjs";
|
|
7
|
+
import { a as trackHitCounts, i as searchPipeline, n as init_directives, o as truncate, r as init_helpers, t as emitDirectives } from "./directives-COYpcrJX.mjs";
|
|
8
8
|
import { n as openDefaultCached, t as init_store } from "./store-8O9WUwMu.mjs";
|
|
9
9
|
import { d as writeLastIntent, f as writeStateJSON, l as readWorkedSlugs, o as readStateJSON, r as init_state, t as IMPLEMENT_INTENTS } from "./state-7LLZFgmO.mjs";
|
|
10
10
|
import { existsSync } from "node:fs";
|