@anthropologies/claudestory 0.1.44 → 0.1.45
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 +3 -3
- package/dist/index.d.ts +42 -42
- package/dist/mcp.js +2 -2
- package/package.json +1 -1
- package/src/skill/SKILL.md +30 -9
- package/src/skill/setup-flow.md +9 -4
package/dist/cli.js
CHANGED
|
@@ -8358,7 +8358,7 @@ function getInstalledVersion() {
|
|
|
8358
8358
|
}
|
|
8359
8359
|
}
|
|
8360
8360
|
function getRunningVersion() {
|
|
8361
|
-
return "0.1.
|
|
8361
|
+
return "0.1.45";
|
|
8362
8362
|
}
|
|
8363
8363
|
var init_version_check = __esm({
|
|
8364
8364
|
"src/autonomous/version-check.ts"() {
|
|
@@ -10923,7 +10923,7 @@ var init_mcp = __esm({
|
|
|
10923
10923
|
init_init();
|
|
10924
10924
|
ENV_VAR2 = "CLAUDESTORY_PROJECT_ROOT";
|
|
10925
10925
|
CONFIG_PATH2 = ".story/config.json";
|
|
10926
|
-
version = "0.1.
|
|
10926
|
+
version = "0.1.45";
|
|
10927
10927
|
main().catch((err) => {
|
|
10928
10928
|
process.stderr.write(`Fatal: ${err instanceof Error ? err.message : String(err)}
|
|
10929
10929
|
`);
|
|
@@ -14354,7 +14354,7 @@ async function runCli() {
|
|
|
14354
14354
|
registerSessionCommand: registerSessionCommand2,
|
|
14355
14355
|
registerRepairCommand: registerRepairCommand2
|
|
14356
14356
|
} = await Promise.resolve().then(() => (init_register(), register_exports));
|
|
14357
|
-
const version2 = "0.1.
|
|
14357
|
+
const version2 = "0.1.45";
|
|
14358
14358
|
class HandledError extends Error {
|
|
14359
14359
|
constructor() {
|
|
14360
14360
|
super("HANDLED_ERROR");
|
package/dist/index.d.ts
CHANGED
|
@@ -1377,42 +1377,15 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1377
1377
|
file: z.ZodString;
|
|
1378
1378
|
message: z.ZodString;
|
|
1379
1379
|
}, "strip", z.ZodTypeAny, {
|
|
1380
|
-
type: string;
|
|
1381
1380
|
message: string;
|
|
1381
|
+
type: string;
|
|
1382
1382
|
file: string;
|
|
1383
1383
|
}, {
|
|
1384
|
-
type: string;
|
|
1385
1384
|
message: string;
|
|
1385
|
+
type: string;
|
|
1386
1386
|
file: string;
|
|
1387
1387
|
}>, "many">>;
|
|
1388
1388
|
}, "strip", z.ZodTypeAny, {
|
|
1389
|
-
version: 1;
|
|
1390
|
-
config: {
|
|
1391
|
-
version: number;
|
|
1392
|
-
type: string;
|
|
1393
|
-
language: string;
|
|
1394
|
-
project: string;
|
|
1395
|
-
features: {
|
|
1396
|
-
issues: boolean;
|
|
1397
|
-
tickets: boolean;
|
|
1398
|
-
handovers: boolean;
|
|
1399
|
-
roadmap: boolean;
|
|
1400
|
-
reviews: boolean;
|
|
1401
|
-
} & {
|
|
1402
|
-
[k: string]: unknown;
|
|
1403
|
-
};
|
|
1404
|
-
schemaVersion?: number | undefined;
|
|
1405
|
-
recipe?: string | undefined;
|
|
1406
|
-
recipeOverrides?: {
|
|
1407
|
-
maxTicketsPerSession?: number | undefined;
|
|
1408
|
-
compactThreshold?: string | undefined;
|
|
1409
|
-
reviewBackends?: string[] | undefined;
|
|
1410
|
-
handoverInterval?: number | undefined;
|
|
1411
|
-
stages?: Record<string, Record<string, unknown>> | undefined;
|
|
1412
|
-
} | undefined;
|
|
1413
|
-
} & {
|
|
1414
|
-
[k: string]: unknown;
|
|
1415
|
-
};
|
|
1416
1389
|
issues: z.objectOutputType<{
|
|
1417
1390
|
id: z.ZodString;
|
|
1418
1391
|
title: z.ZodString;
|
|
@@ -1449,8 +1422,8 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1449
1422
|
claimedBySession: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1450
1423
|
}, z.ZodTypeAny, "passthrough">[];
|
|
1451
1424
|
roadmap: {
|
|
1452
|
-
date: string;
|
|
1453
1425
|
title: string;
|
|
1426
|
+
date: string;
|
|
1454
1427
|
phases: z.objectOutputType<{
|
|
1455
1428
|
id: z.ZodString;
|
|
1456
1429
|
label: z.ZodString;
|
|
@@ -1468,6 +1441,7 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1468
1441
|
} & {
|
|
1469
1442
|
[k: string]: unknown;
|
|
1470
1443
|
};
|
|
1444
|
+
version: 1;
|
|
1471
1445
|
project: string;
|
|
1472
1446
|
notes: z.objectOutputType<{
|
|
1473
1447
|
id: z.ZodString;
|
|
@@ -1493,19 +1467,11 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1493
1467
|
status: z.ZodEnum<["active", "deprecated", "superseded"]>;
|
|
1494
1468
|
}, z.ZodTypeAny, "passthrough">[];
|
|
1495
1469
|
createdAt: string;
|
|
1496
|
-
handoverFilenames: string[];
|
|
1497
|
-
warnings?: {
|
|
1498
|
-
type: string;
|
|
1499
|
-
message: string;
|
|
1500
|
-
file: string;
|
|
1501
|
-
}[] | undefined;
|
|
1502
|
-
}, {
|
|
1503
|
-
version: 1;
|
|
1504
1470
|
config: {
|
|
1505
|
-
version: number;
|
|
1506
1471
|
type: string;
|
|
1507
|
-
|
|
1472
|
+
version: number;
|
|
1508
1473
|
project: string;
|
|
1474
|
+
language: string;
|
|
1509
1475
|
features: {
|
|
1510
1476
|
issues: boolean;
|
|
1511
1477
|
tickets: boolean;
|
|
@@ -1527,6 +1493,13 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1527
1493
|
} & {
|
|
1528
1494
|
[k: string]: unknown;
|
|
1529
1495
|
};
|
|
1496
|
+
handoverFilenames: string[];
|
|
1497
|
+
warnings?: {
|
|
1498
|
+
message: string;
|
|
1499
|
+
type: string;
|
|
1500
|
+
file: string;
|
|
1501
|
+
}[] | undefined;
|
|
1502
|
+
}, {
|
|
1530
1503
|
issues: z.objectInputType<{
|
|
1531
1504
|
id: z.ZodString;
|
|
1532
1505
|
title: z.ZodString;
|
|
@@ -1563,8 +1536,8 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1563
1536
|
claimedBySession: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1564
1537
|
}, z.ZodTypeAny, "passthrough">[];
|
|
1565
1538
|
roadmap: {
|
|
1566
|
-
date: string;
|
|
1567
1539
|
title: string;
|
|
1540
|
+
date: string;
|
|
1568
1541
|
phases: z.objectInputType<{
|
|
1569
1542
|
id: z.ZodString;
|
|
1570
1543
|
label: z.ZodString;
|
|
@@ -1582,8 +1555,35 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1582
1555
|
} & {
|
|
1583
1556
|
[k: string]: unknown;
|
|
1584
1557
|
};
|
|
1558
|
+
version: 1;
|
|
1585
1559
|
project: string;
|
|
1586
1560
|
createdAt: string;
|
|
1561
|
+
config: {
|
|
1562
|
+
type: string;
|
|
1563
|
+
version: number;
|
|
1564
|
+
project: string;
|
|
1565
|
+
language: string;
|
|
1566
|
+
features: {
|
|
1567
|
+
issues: boolean;
|
|
1568
|
+
tickets: boolean;
|
|
1569
|
+
handovers: boolean;
|
|
1570
|
+
roadmap: boolean;
|
|
1571
|
+
reviews: boolean;
|
|
1572
|
+
} & {
|
|
1573
|
+
[k: string]: unknown;
|
|
1574
|
+
};
|
|
1575
|
+
schemaVersion?: number | undefined;
|
|
1576
|
+
recipe?: string | undefined;
|
|
1577
|
+
recipeOverrides?: {
|
|
1578
|
+
maxTicketsPerSession?: number | undefined;
|
|
1579
|
+
compactThreshold?: string | undefined;
|
|
1580
|
+
reviewBackends?: string[] | undefined;
|
|
1581
|
+
handoverInterval?: number | undefined;
|
|
1582
|
+
stages?: Record<string, Record<string, unknown>> | undefined;
|
|
1583
|
+
} | undefined;
|
|
1584
|
+
} & {
|
|
1585
|
+
[k: string]: unknown;
|
|
1586
|
+
};
|
|
1587
1587
|
notes?: z.objectInputType<{
|
|
1588
1588
|
id: z.ZodString;
|
|
1589
1589
|
title: z.ZodNullable<z.ZodString>;
|
|
@@ -1608,8 +1608,8 @@ declare const SnapshotV1Schema: z.ZodObject<{
|
|
|
1608
1608
|
status: z.ZodEnum<["active", "deprecated", "superseded"]>;
|
|
1609
1609
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
1610
1610
|
warnings?: {
|
|
1611
|
-
type: string;
|
|
1612
1611
|
message: string;
|
|
1612
|
+
type: string;
|
|
1613
1613
|
file: string;
|
|
1614
1614
|
}[] | undefined;
|
|
1615
1615
|
handoverFilenames?: string[] | undefined;
|
package/dist/mcp.js
CHANGED
|
@@ -7816,7 +7816,7 @@ function getInstalledVersion() {
|
|
|
7816
7816
|
}
|
|
7817
7817
|
}
|
|
7818
7818
|
function getRunningVersion() {
|
|
7819
|
-
return "0.1.
|
|
7819
|
+
return "0.1.45";
|
|
7820
7820
|
}
|
|
7821
7821
|
|
|
7822
7822
|
// src/autonomous/guide.ts
|
|
@@ -10055,7 +10055,7 @@ async function ensureGitignoreEntries(gitignorePath, entries) {
|
|
|
10055
10055
|
// src/mcp/index.ts
|
|
10056
10056
|
var ENV_VAR2 = "CLAUDESTORY_PROJECT_ROOT";
|
|
10057
10057
|
var CONFIG_PATH2 = ".story/config.json";
|
|
10058
|
-
var version = "0.1.
|
|
10058
|
+
var version = "0.1.45";
|
|
10059
10059
|
function tryDiscoverRoot() {
|
|
10060
10060
|
const envRoot = process.env[ENV_VAR2];
|
|
10061
10061
|
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.45",
|
|
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
|
@@ -81,18 +81,39 @@ After `claudestory_status` returns, check in order:
|
|
|
81
81
|
|
|
82
82
|
## Step 3: Present Summary
|
|
83
83
|
|
|
84
|
-
After loading context, present a
|
|
84
|
+
After loading context, present a summary that feels like a collaborator catching you up -- conversational, not a status report.
|
|
85
85
|
|
|
86
|
+
Include:
|
|
86
87
|
- Project progress (X/Y tickets complete, current phase)
|
|
87
88
|
- What changed since last snapshot (from recap)
|
|
88
|
-
- What the last session accomplished (from handover)
|
|
89
|
-
-
|
|
90
|
-
- Any high-severity issues or blockers
|
|
91
|
-
- Key process rules (from lessons digest)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
- What the last session accomplished (from handover -- keep it to 1-2 sentences)
|
|
90
|
+
- The recommended next ticket and why it's next (unblocked, high priority, continues recent work)
|
|
91
|
+
- Any high-severity issues or blockers worth knowing about
|
|
92
|
+
- Key process rules (from lessons digest -- only if there are lessons)
|
|
93
|
+
|
|
94
|
+
Use `claudestory_recommend` for context-aware suggestions mixing tickets and issues.
|
|
95
|
+
|
|
96
|
+
**First session guide (show only when handover count is 0 or 1):** If this is the user's first or second real session (setup handover is the only one), include a brief mode guide after the summary:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Tip: You can also use these modes anytime:
|
|
100
|
+
/story auto I work through tickets autonomously -- plan, review, build, commit, loop
|
|
101
|
+
/story guided T-XXX One ticket end-to-end with planning and code review
|
|
102
|
+
/story review T-XXX Review code you already wrote
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Show this once or twice, then never again. Returning users don't need it.
|
|
106
|
+
|
|
107
|
+
End with `AskUserQuestion`:
|
|
108
|
+
- question: "What would you like to do?"
|
|
109
|
+
- header: "Next"
|
|
110
|
+
- options:
|
|
111
|
+
- "Work on [recommended ticket title]" -- the ticket you just recommended
|
|
112
|
+
- "Something else" -- I'll ask what you have in mind
|
|
113
|
+
- "Autonomous mode" -- I'll work through tickets on my own
|
|
114
|
+
- (Other always available for free-text input)
|
|
115
|
+
|
|
116
|
+
This replaces the open-ended "What would you like to work on?" with a one-tap default. Most users want the recommended ticket -- make that effortless.
|
|
96
117
|
|
|
97
118
|
## Session Lifecycle
|
|
98
119
|
|
package/src/skill/setup-flow.md
CHANGED
|
@@ -375,9 +375,9 @@ After the user approves the proposal structure, use `AskUserQuestion` for refine
|
|
|
375
375
|
- question: "Want me to refine these before creating?"
|
|
376
376
|
- header: "Depth"
|
|
377
377
|
- options:
|
|
378
|
-
- "
|
|
378
|
+
- "Yes, refine + get a second opinion (Recommended)" -- I'll refine, then have an independent reviewer check my work
|
|
379
379
|
- "Yes, refine them" -- I'll add descriptions, figure out dependencies, and flag oversized tickets
|
|
380
|
-
- "
|
|
380
|
+
- "Create as-is" -- create tickets now with just titles
|
|
381
381
|
|
|
382
382
|
If "Create as-is" and no brief exists: warn "Note: tickets will have titles only -- you can add descriptions later."
|
|
383
383
|
|
|
@@ -436,7 +436,7 @@ After refinement, run an independent review of the full proposal (phases, ticket
|
|
|
436
436
|
- question: "Write project governance files?"
|
|
437
437
|
- header: "Files"
|
|
438
438
|
- options:
|
|
439
|
-
- "Write both" -- CLAUDE.md and RULES.md
|
|
439
|
+
- "Write both (Recommended)" -- CLAUDE.md and RULES.md
|
|
440
440
|
- "CLAUDE.md only"
|
|
441
441
|
- "RULES.md only"
|
|
442
442
|
- "Skip" -- I'll write them manually
|
|
@@ -487,7 +487,12 @@ After creation completes:
|
|
|
487
487
|
- Confirm what was created (e.g., "Created 5 phases, 18 tickets, 3 issues, CLAUDE.md, and RULES.md")
|
|
488
488
|
- Check if `.gitignore` includes `.story/snapshots/` (warn if missing -- snapshots should not be committed)
|
|
489
489
|
- Write an initial handover documenting the setup decisions. Explicitly capture which gates were answered and what was chosen: surface, characteristics, stack, system shape, execution model, deployment, data model, domain complexity, auth model, sensitive domain, AI pattern/provider/processing (if applicable), design source. This handover is the source of truth for decisions; CLAUDE.md is the project description.
|
|
490
|
-
|
|
490
|
+
|
|
491
|
+
Present a brief completion message and tell the user how to start:
|
|
492
|
+
|
|
493
|
+
"Your project is set up -- [X] phases, [Y] tickets, CLAUDE.md, and RULES.md created. Type **`/story`** at the start of any session to load context and see what to work on. Or type **`/story auto`** to let me work through the tickets autonomously."
|
|
494
|
+
|
|
495
|
+
Keep it to 2-3 sentences. The system teaches itself through use -- `/story` loads context, shows status, and suggests next work. No need for a manual.
|
|
491
496
|
|
|
492
497
|
---
|
|
493
498
|
|