@anthropologies/claudestory 0.1.29 → 0.1.31
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/dist/cli.js +14 -8
- package/dist/mcp.js +7 -7
- package/package.json +1 -1
- package/src/skill/SKILL.md +8 -0
- package/src/skill/reference.md +6 -0
package/dist/cli.js
CHANGED
|
@@ -5175,11 +5175,11 @@ var init_session_types = __esm({
|
|
|
5175
5175
|
stealReason: z9.string().optional(),
|
|
5176
5176
|
// Recipe overrides (maxTicketsPerSession: 0 = no limit)
|
|
5177
5177
|
config: z9.object({
|
|
5178
|
-
maxTicketsPerSession: z9.number().min(0).default(
|
|
5179
|
-
handoverInterval: z9.number().min(0).default(
|
|
5178
|
+
maxTicketsPerSession: z9.number().min(0).default(5),
|
|
5179
|
+
handoverInterval: z9.number().min(0).default(3),
|
|
5180
5180
|
compactThreshold: z9.string().default("high"),
|
|
5181
5181
|
reviewBackends: z9.array(z9.string()).default(["codex", "agent"])
|
|
5182
|
-
}).default({ maxTicketsPerSession:
|
|
5182
|
+
}).default({ maxTicketsPerSession: 5, compactThreshold: "high", reviewBackends: ["codex", "agent"], handoverInterval: 3 }),
|
|
5183
5183
|
// T-123: Issue sweep tracking
|
|
5184
5184
|
issueSweepState: z9.object({
|
|
5185
5185
|
remaining: z9.array(z9.string()),
|
|
@@ -5300,10 +5300,10 @@ function createSession(root, recipe, workspaceId, configOverrides) {
|
|
|
5300
5300
|
startedAt: now,
|
|
5301
5301
|
guideCallCount: 0,
|
|
5302
5302
|
config: {
|
|
5303
|
-
maxTicketsPerSession: configOverrides?.maxTicketsPerSession ??
|
|
5303
|
+
maxTicketsPerSession: configOverrides?.maxTicketsPerSession ?? 5,
|
|
5304
5304
|
compactThreshold: configOverrides?.compactThreshold ?? "high",
|
|
5305
5305
|
reviewBackends: configOverrides?.reviewBackends ?? ["codex", "agent"],
|
|
5306
|
-
handoverInterval: configOverrides?.handoverInterval ??
|
|
5306
|
+
handoverInterval: configOverrides?.handoverInterval ?? 3
|
|
5307
5307
|
}
|
|
5308
5308
|
};
|
|
5309
5309
|
writeSessionSync(dir, state);
|
|
@@ -8275,7 +8275,7 @@ ${ticket.description}` : "",
|
|
|
8275
8275
|
});
|
|
8276
8276
|
const topCandidate = nextResult.kind === "found" ? nextResult.candidates[0] : null;
|
|
8277
8277
|
const maxTickets = updated.config.maxTicketsPerSession;
|
|
8278
|
-
const interval = updated.config.handoverInterval ??
|
|
8278
|
+
const interval = updated.config.handoverInterval ?? 3;
|
|
8279
8279
|
const sessionDesc = maxTickets > 0 ? `Work continuously until all tickets are done or you reach ${maxTickets} tickets.` : "Work continuously until all tickets are done.";
|
|
8280
8280
|
const checkpointDesc = interval > 0 ? ` A checkpoint handover will be saved every ${interval} tickets.` : "";
|
|
8281
8281
|
const instruction = [
|
|
@@ -10239,7 +10239,7 @@ var init_mcp = __esm({
|
|
|
10239
10239
|
init_init();
|
|
10240
10240
|
ENV_VAR2 = "CLAUDESTORY_PROJECT_ROOT";
|
|
10241
10241
|
CONFIG_PATH2 = ".story/config.json";
|
|
10242
|
-
version = "0.1.
|
|
10242
|
+
version = "0.1.31";
|
|
10243
10243
|
main().catch((err) => {
|
|
10244
10244
|
process.stderr.write(`Fatal: ${err instanceof Error ? err.message : String(err)}
|
|
10245
10245
|
`);
|
|
@@ -10733,6 +10733,12 @@ var init_reference = __esm({
|
|
|
10733
10733
|
{ name: "claudestory_issue_create", description: "Create issue", params: ["title", "severity", "impact", "components?", "relatedTickets?", "location?", "phase?"] },
|
|
10734
10734
|
{ name: "claudestory_issue_update", description: "Update issue", params: ["id", "status?", "title?", "severity?", "impact?", "resolution?", "components?", "relatedTickets?", "location?", "order?", "phase?"] },
|
|
10735
10735
|
{ name: "claudestory_phase_create", description: "Create phase in roadmap", params: ["id", "name", "label", "description", "summary?", "after?", "atStart?"] },
|
|
10736
|
+
{ name: "claudestory_lesson_list", description: "List lessons", params: ["status?", "tag?", "source?"] },
|
|
10737
|
+
{ name: "claudestory_lesson_get", description: "Get lesson by ID", params: ["id"] },
|
|
10738
|
+
{ name: "claudestory_lesson_digest", description: "Ranked digest of active lessons for context loading" },
|
|
10739
|
+
{ name: "claudestory_lesson_create", description: "Create lesson", params: ["title", "content", "context", "source", "tags?", "supersedes?"] },
|
|
10740
|
+
{ name: "claudestory_lesson_update", description: "Update lesson", params: ["id", "title?", "content?", "context?", "tags?", "status?", "supersedes?"] },
|
|
10741
|
+
{ name: "claudestory_lesson_reinforce", description: "Reinforce lesson \u2014 increment count and update lastValidated", params: ["id"] },
|
|
10736
10742
|
{ name: "claudestory_selftest", description: "Integration smoke test \u2014 create/update/delete cycle" }
|
|
10737
10743
|
];
|
|
10738
10744
|
}
|
|
@@ -13517,7 +13523,7 @@ async function runCli() {
|
|
|
13517
13523
|
registerConfigCommand: registerConfigCommand2,
|
|
13518
13524
|
registerSessionCommand: registerSessionCommand2
|
|
13519
13525
|
} = await Promise.resolve().then(() => (init_register(), register_exports));
|
|
13520
|
-
const version2 = "0.1.
|
|
13526
|
+
const version2 = "0.1.31";
|
|
13521
13527
|
class HandledError extends Error {
|
|
13522
13528
|
constructor() {
|
|
13523
13529
|
super("HANDLED_ERROR");
|
package/dist/mcp.js
CHANGED
|
@@ -3617,11 +3617,11 @@ var init_session_types = __esm({
|
|
|
3617
3617
|
stealReason: z9.string().optional(),
|
|
3618
3618
|
// Recipe overrides (maxTicketsPerSession: 0 = no limit)
|
|
3619
3619
|
config: z9.object({
|
|
3620
|
-
maxTicketsPerSession: z9.number().min(0).default(
|
|
3621
|
-
handoverInterval: z9.number().min(0).default(
|
|
3620
|
+
maxTicketsPerSession: z9.number().min(0).default(5),
|
|
3621
|
+
handoverInterval: z9.number().min(0).default(3),
|
|
3622
3622
|
compactThreshold: z9.string().default("high"),
|
|
3623
3623
|
reviewBackends: z9.array(z9.string()).default(["codex", "agent"])
|
|
3624
|
-
}).default({ maxTicketsPerSession:
|
|
3624
|
+
}).default({ maxTicketsPerSession: 5, compactThreshold: "high", reviewBackends: ["codex", "agent"], handoverInterval: 3 }),
|
|
3625
3625
|
// T-123: Issue sweep tracking
|
|
3626
3626
|
issueSweepState: z9.object({
|
|
3627
3627
|
remaining: z9.array(z9.string()),
|
|
@@ -3742,10 +3742,10 @@ function createSession(root, recipe, workspaceId, configOverrides) {
|
|
|
3742
3742
|
startedAt: now,
|
|
3743
3743
|
guideCallCount: 0,
|
|
3744
3744
|
config: {
|
|
3745
|
-
maxTicketsPerSession: configOverrides?.maxTicketsPerSession ??
|
|
3745
|
+
maxTicketsPerSession: configOverrides?.maxTicketsPerSession ?? 5,
|
|
3746
3746
|
compactThreshold: configOverrides?.compactThreshold ?? "high",
|
|
3747
3747
|
reviewBackends: configOverrides?.reviewBackends ?? ["codex", "agent"],
|
|
3748
|
-
handoverInterval: configOverrides?.handoverInterval ??
|
|
3748
|
+
handoverInterval: configOverrides?.handoverInterval ?? 3
|
|
3749
3749
|
}
|
|
3750
3750
|
};
|
|
3751
3751
|
writeSessionSync(dir, state);
|
|
@@ -7755,7 +7755,7 @@ ${ticket.description}` : "",
|
|
|
7755
7755
|
});
|
|
7756
7756
|
const topCandidate = nextResult.kind === "found" ? nextResult.candidates[0] : null;
|
|
7757
7757
|
const maxTickets = updated.config.maxTicketsPerSession;
|
|
7758
|
-
const interval = updated.config.handoverInterval ??
|
|
7758
|
+
const interval = updated.config.handoverInterval ?? 3;
|
|
7759
7759
|
const sessionDesc = maxTickets > 0 ? `Work continuously until all tickets are done or you reach ${maxTickets} tickets.` : "Work continuously until all tickets are done.";
|
|
7760
7760
|
const checkpointDesc = interval > 0 ? ` A checkpoint handover will be saved every ${interval} tickets.` : "";
|
|
7761
7761
|
const instruction = [
|
|
@@ -9395,7 +9395,7 @@ async function ensureGitignoreEntries(gitignorePath, entries) {
|
|
|
9395
9395
|
// src/mcp/index.ts
|
|
9396
9396
|
var ENV_VAR2 = "CLAUDESTORY_PROJECT_ROOT";
|
|
9397
9397
|
var CONFIG_PATH2 = ".story/config.json";
|
|
9398
|
-
var version = "0.1.
|
|
9398
|
+
var version = "0.1.31";
|
|
9399
9399
|
function tryDiscoverRoot() {
|
|
9400
9400
|
const envRoot = process.env[ENV_VAR2];
|
|
9401
9401
|
if (envRoot) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anthropologies/claudestory",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.31",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Cross-session context persistence for AI coding projects. Tracks tickets, issues, roadmap, and handovers so every session builds on the last.",
|
|
6
6
|
"keywords": [
|
package/src/skill/SKILL.md
CHANGED
|
@@ -232,6 +232,14 @@ Then ask: **"What would you like to work on?"**
|
|
|
232
232
|
|
|
233
233
|
Before writing a handover at the end of a session, run `claudestory snapshot` first. This ensures the next session's recap can show what changed. If `setup-skill` has been run, a PreCompact hook auto-takes snapshots before context compaction.
|
|
234
234
|
|
|
235
|
+
**Lessons** capture non-obvious process learnings that should carry forward across sessions. At the end of a significant session, review what you learned and create lessons via `claudestory_lesson_create` for:
|
|
236
|
+
- Patterns that worked (or failed) and why
|
|
237
|
+
- Architecture decisions with non-obvious rationale
|
|
238
|
+
- Tool/framework quirks discovered during implementation
|
|
239
|
+
- Process improvements (review workflows, testing strategies)
|
|
240
|
+
|
|
241
|
+
Don't duplicate what's already in the handover — lessons are structured, tagged, and ranked. Handovers are narrative. Use `claudestory_lesson_digest` to check existing lessons before creating duplicates. Use `claudestory_lesson_reinforce` when an existing lesson proves true again.
|
|
242
|
+
|
|
235
243
|
## Ticket and Issue Discipline
|
|
236
244
|
|
|
237
245
|
**Tickets** are planned work — features, tasks, refactors. They represent intentional, scoped commitments.
|
package/src/skill/reference.md
CHANGED
|
@@ -320,6 +320,12 @@ claudestory setup-skill
|
|
|
320
320
|
- **claudestory_issue_create** (title, severity, impact, components?, relatedTickets?, location?, phase?) — Create issue
|
|
321
321
|
- **claudestory_issue_update** (id, status?, title?, severity?, impact?, resolution?, components?, relatedTickets?, location?, order?, phase?) — Update issue
|
|
322
322
|
- **claudestory_phase_create** (id, name, label, description, summary?, after?, atStart?) — Create phase in roadmap
|
|
323
|
+
- **claudestory_lesson_list** (status?, tag?, source?) — List lessons
|
|
324
|
+
- **claudestory_lesson_get** (id) — Get lesson by ID
|
|
325
|
+
- **claudestory_lesson_digest** — Ranked digest of active lessons for context loading
|
|
326
|
+
- **claudestory_lesson_create** (title, content, context, source, tags?, supersedes?) — Create lesson
|
|
327
|
+
- **claudestory_lesson_update** (id, title?, content?, context?, tags?, status?, supersedes?) — Update lesson
|
|
328
|
+
- **claudestory_lesson_reinforce** (id) — Reinforce lesson — increment count and update lastValidated
|
|
323
329
|
- **claudestory_selftest** — Integration smoke test — create/update/delete cycle
|
|
324
330
|
|
|
325
331
|
## Common Workflows
|