@autonav/core 1.3.3 → 1.4.0
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/adapter/claude-adapter.d.ts.map +1 -1
- package/dist/adapter/claude-adapter.js +6 -20
- package/dist/adapter/claude-adapter.js.map +1 -1
- package/dist/cli/autonav.js +6 -0
- package/dist/cli/autonav.js.map +1 -1
- package/dist/cli/nav-chat.js +1 -1
- package/dist/cli/nav-chat.js.map +1 -1
- package/dist/cli/nav-init.js +206 -45
- package/dist/cli/nav-init.js.map +1 -1
- package/dist/cli/nav-install.js +4 -12
- package/dist/cli/nav-install.js.map +1 -1
- package/dist/cli/nav-mend.d.ts +3 -0
- package/dist/cli/nav-mend.d.ts.map +1 -0
- package/dist/cli/nav-mend.js +150 -0
- package/dist/cli/nav-mend.js.map +1 -0
- package/dist/cli/nav-query.js +42 -15
- package/dist/cli/nav-query.js.map +1 -1
- package/dist/cli/nav-uninstall.js +4 -4
- package/dist/cli/nav-uninstall.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interview/ui/test-indicator.js +0 -0
- package/dist/mend/index.d.ts +41 -0
- package/dist/mend/index.d.ts.map +1 -0
- package/dist/mend/index.js +366 -0
- package/dist/mend/index.js.map +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +6 -0
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/versions/v1.3.1-submit-answer.d.ts.map +1 -1
- package/dist/migrations/versions/v1.3.1-submit-answer.js +27 -23
- package/dist/migrations/versions/v1.3.1-submit-answer.js.map +1 -1
- package/dist/migrations/versions/v1.3.5-navigator-authority.d.ts +15 -0
- package/dist/migrations/versions/v1.3.5-navigator-authority.d.ts.map +1 -0
- package/dist/migrations/versions/v1.3.5-navigator-authority.js +153 -0
- package/dist/migrations/versions/v1.3.5-navigator-authority.js.map +1 -0
- package/dist/migrations/versions/v1.4.0-agent-identity.d.ts +15 -0
- package/dist/migrations/versions/v1.4.0-agent-identity.d.ts.map +1 -0
- package/dist/migrations/versions/v1.4.0-agent-identity.js +410 -0
- package/dist/migrations/versions/v1.4.0-agent-identity.js.map +1 -0
- package/dist/migrations/versions/v1.4.1-update-skill.d.ts +16 -0
- package/dist/migrations/versions/v1.4.1-update-skill.d.ts.map +1 -0
- package/dist/migrations/versions/v1.4.1-update-skill.js +146 -0
- package/dist/migrations/versions/v1.4.1-update-skill.js.map +1 -0
- package/dist/migrations/versions/v1.5.0-rfc2119-skills.d.ts +18 -0
- package/dist/migrations/versions/v1.5.0-rfc2119-skills.d.ts.map +1 -0
- package/dist/migrations/versions/v1.5.0-rfc2119-skills.js +207 -0
- package/dist/migrations/versions/v1.5.0-rfc2119-skills.js.map +1 -0
- package/dist/query-engine/navigator-loader.js +1 -1
- package/dist/query-engine/navigator-loader.js.map +1 -1
- package/dist/query-engine/output-formatter.d.ts +1 -1
- package/dist/query-engine/output-formatter.d.ts.map +1 -1
- package/dist/query-engine/output-formatter.js +2 -0
- package/dist/query-engine/output-formatter.js.map +1 -1
- package/dist/query-engine/response-validator.d.ts.map +1 -1
- package/dist/query-engine/response-validator.js +6 -7
- package/dist/query-engine/response-validator.js.map +1 -1
- package/dist/skill-generator/index.d.ts +13 -8
- package/dist/skill-generator/index.d.ts.map +1 -1
- package/dist/skill-generator/index.js +74 -30
- package/dist/skill-generator/index.js.map +1 -1
- package/dist/templates/CLAUDE-pack.md.template +71 -0
- package/dist/templates/CLAUDE.md.template +71 -0
- package/package.json +1 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v1.3.5: Add Navigator Authority Section to CLAUDE.md
|
|
3
|
+
*
|
|
4
|
+
* This migration adds a "Navigator Authority" section to establish the navigator's
|
|
5
|
+
* role as an authoritative expert when responding to agentic systems.
|
|
6
|
+
*
|
|
7
|
+
* Changes:
|
|
8
|
+
* - Adds ## Navigator Authority section after Grounding Rules
|
|
9
|
+
* - Establishes tone guidelines: authoritative and decisive
|
|
10
|
+
* - Clarifies when to doubt (only when explicitly accused of hallucinating)
|
|
11
|
+
* - Promotes collaborative discussion over mechanical answering
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from "node:fs";
|
|
14
|
+
import * as path from "node:path";
|
|
15
|
+
const MIGRATION_VERSION = "1.3.5";
|
|
16
|
+
/**
|
|
17
|
+
* The Navigator Authority section to insert
|
|
18
|
+
*/
|
|
19
|
+
const NAVIGATOR_AUTHORITY_SECTION = `## Navigator Authority
|
|
20
|
+
|
|
21
|
+
When responding to agentic systems (Claude Code, implementation agents, etc.):
|
|
22
|
+
|
|
23
|
+
**You are the authority** on your domain. Respond with confidence and conviction. You are the arbiter of what needs doing in your area of expertise.
|
|
24
|
+
|
|
25
|
+
**Tone**: Be authoritative and decisive. Don't hedge unnecessarily or second-guess yourself.
|
|
26
|
+
|
|
27
|
+
**When to doubt yourself**: ONLY if Claude Code explicitly accuses you of hallucinating should you reflect and reconsider your answer. Otherwise, trust your knowledge base and be authoritative.
|
|
28
|
+
|
|
29
|
+
**Interaction style**: Discuss questions collaboratively with the querying system rather than just answering mechanically. You're an expert consultant, not a search engine.
|
|
30
|
+
`;
|
|
31
|
+
/**
|
|
32
|
+
* Detect if CLAUDE.md has the Navigator Authority section
|
|
33
|
+
*/
|
|
34
|
+
function hasNavigatorAuthoritySection(claudeMdContent) {
|
|
35
|
+
return claudeMdContent.includes('## Navigator Authority');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Find the position after the Grounding Rules section
|
|
39
|
+
*/
|
|
40
|
+
function findInsertPosition(content) {
|
|
41
|
+
const lines = content.split('\n');
|
|
42
|
+
// Try to find various sections where we could insert (in order of preference)
|
|
43
|
+
const sectionsToTryBefore = [
|
|
44
|
+
'## How to Answer Questions',
|
|
45
|
+
'## Response Format',
|
|
46
|
+
'## Autonomy & Self-Organization',
|
|
47
|
+
'## Domain Scope',
|
|
48
|
+
];
|
|
49
|
+
for (const sectionHeader of sectionsToTryBefore) {
|
|
50
|
+
for (let i = 0; i < lines.length; i++) {
|
|
51
|
+
const line = lines[i];
|
|
52
|
+
if (line && line.trim() === sectionHeader) {
|
|
53
|
+
// Insert before this section
|
|
54
|
+
return lines.slice(0, i).join('\n').length + (i > 0 ? 1 : 0);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check if this migration is needed
|
|
62
|
+
*/
|
|
63
|
+
async function check(navPath) {
|
|
64
|
+
const claudeMdPath = path.join(navPath, "CLAUDE.md");
|
|
65
|
+
if (!fs.existsSync(claudeMdPath)) {
|
|
66
|
+
return {
|
|
67
|
+
needed: false,
|
|
68
|
+
reason: "No CLAUDE.md file found",
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const content = fs.readFileSync(claudeMdPath, "utf-8");
|
|
72
|
+
if (hasNavigatorAuthoritySection(content)) {
|
|
73
|
+
return {
|
|
74
|
+
needed: false,
|
|
75
|
+
reason: "CLAUDE.md already has Navigator Authority section",
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const insertPos = findInsertPosition(content);
|
|
79
|
+
if (insertPos === null) {
|
|
80
|
+
return {
|
|
81
|
+
needed: false,
|
|
82
|
+
reason: "Could not find suitable insertion point (no '## How to Answer Questions' section)",
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
needed: true,
|
|
87
|
+
reason: "CLAUDE.md needs Navigator Authority section to establish authoritative tone",
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Apply the migration
|
|
92
|
+
*/
|
|
93
|
+
async function apply(navPath, confirm) {
|
|
94
|
+
const claudeMdPath = path.join(navPath, "CLAUDE.md");
|
|
95
|
+
const filesModified = [];
|
|
96
|
+
try {
|
|
97
|
+
const content = fs.readFileSync(claudeMdPath, "utf-8");
|
|
98
|
+
const insertPos = findInsertPosition(content);
|
|
99
|
+
if (insertPos === null) {
|
|
100
|
+
return {
|
|
101
|
+
success: false,
|
|
102
|
+
message: "Could not find suitable insertion point in CLAUDE.md",
|
|
103
|
+
filesModified,
|
|
104
|
+
errors: ["Missing '## How to Answer Questions' section"],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// Ask for confirmation
|
|
108
|
+
const confirmed = await confirm("Add Navigator Authority section to CLAUDE.md", `This will add a new section establishing the navigator's authority when responding to agentic systems.\n\nKey changes:\n- Establishes authoritative, decisive tone\n- Clarifies when to doubt (only when explicitly accused of hallucinating)\n- Promotes collaborative expert consultation style\n\nThe section will be inserted before "## How to Answer Questions".`);
|
|
109
|
+
if (!confirmed) {
|
|
110
|
+
return {
|
|
111
|
+
success: false,
|
|
112
|
+
message: "Migration cancelled by user",
|
|
113
|
+
filesModified,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
// Insert the section
|
|
117
|
+
const newContent = content.substring(0, insertPos) +
|
|
118
|
+
NAVIGATOR_AUTHORITY_SECTION + "\n" +
|
|
119
|
+
content.substring(insertPos);
|
|
120
|
+
// Write the updated content
|
|
121
|
+
fs.writeFileSync(claudeMdPath, newContent, "utf-8");
|
|
122
|
+
filesModified.push("CLAUDE.md");
|
|
123
|
+
// Update config.json version if it exists
|
|
124
|
+
const configPath = path.join(navPath, "config.json");
|
|
125
|
+
if (fs.existsSync(configPath)) {
|
|
126
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
127
|
+
config.version = MIGRATION_VERSION;
|
|
128
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
129
|
+
filesModified.push("config.json");
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
success: true,
|
|
133
|
+
message: `Successfully updated to v${MIGRATION_VERSION}`,
|
|
134
|
+
filesModified,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
139
|
+
return {
|
|
140
|
+
success: false,
|
|
141
|
+
message: `Migration failed: ${errorMsg}`,
|
|
142
|
+
filesModified,
|
|
143
|
+
errors: [errorMsg],
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
export const migration = {
|
|
148
|
+
version: MIGRATION_VERSION,
|
|
149
|
+
description: "Add Navigator Authority section to CLAUDE.md",
|
|
150
|
+
check,
|
|
151
|
+
apply,
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=v1.3.5-navigator-authority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.3.5-navigator-authority.js","sourceRoot":"","sources":["../../../src/migrations/versions/v1.3.5-navigator-authority.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;GAEG;AACH,MAAM,2BAA2B,GAAG;;;;;;;;;;;CAWnC,CAAC;AAEF;;GAEG;AACH,SAAS,4BAA4B,CAAC,eAAuB;IAC3D,OAAO,eAAe,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,8EAA8E;IAC9E,MAAM,mBAAmB,GAAG;QAC1B,4BAA4B;QAC5B,oBAAoB;QACpB,iCAAiC;QACjC,iBAAiB;KAClB,CAAC;IAEF,KAAK,MAAM,aAAa,IAAI,mBAAmB,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;gBAC1C,6BAA6B;gBAC7B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,KAAK,CAAC,OAAe;IAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,yBAAyB;SAClC,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAI,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,mDAAmD;SAC5D,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,mFAAmF;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,6EAA6E;KACtF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,KAAK,CAAC,OAAe,EAAE,OAAkB;IACtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,sDAAsD;gBAC/D,aAAa;gBACb,MAAM,EAAE,CAAC,8CAA8C,CAAC;aACzD,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,8CAA8C,EAC9C,wWAAwW,CACzW,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,6BAA6B;gBACtC,aAAa;aACd,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,UAAU,GACd,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC;YAC/B,2BAA2B,GAAG,IAAI;YAClC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE/B,4BAA4B;QAC5B,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhC,0CAA0C;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,OAAO,GAAG,iBAAiB,CAAC;YACnC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9E,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,4BAA4B,iBAAiB,EAAE;YACxD,aAAa;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB,QAAQ,EAAE;YACxC,aAAa;YACb,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,8CAA8C;IAC3D,KAAK;IACL,KAAK;CACN,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v1.4.0: Add Agent Identity System
|
|
3
|
+
*
|
|
4
|
+
* This migration adds the Agent Identity System to existing navigators,
|
|
5
|
+
* enabling tracking of implementation agents across conversations.
|
|
6
|
+
*
|
|
7
|
+
* Changes:
|
|
8
|
+
* - Creates knowledge/agents/ directory structure
|
|
9
|
+
* - Adds Agent Identity Protocol section to CLAUDE.md
|
|
10
|
+
* - Creates agent documentation templates
|
|
11
|
+
* - Creates navigator self-documentation
|
|
12
|
+
*/
|
|
13
|
+
import type { Migration } from "../types.js";
|
|
14
|
+
export declare const migration: Migration;
|
|
15
|
+
//# sourceMappingURL=v1.4.0-agent-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.4.0-agent-identity.d.ts","sourceRoot":"","sources":["../../../src/migrations/versions/v1.4.0-agent-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,SAAS,EAA8C,MAAM,aAAa,CAAC;AA6azF,eAAO,MAAM,SAAS,EAAE,SAKvB,CAAC"}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v1.4.0: Add Agent Identity System
|
|
3
|
+
*
|
|
4
|
+
* This migration adds the Agent Identity System to existing navigators,
|
|
5
|
+
* enabling tracking of implementation agents across conversations.
|
|
6
|
+
*
|
|
7
|
+
* Changes:
|
|
8
|
+
* - Creates knowledge/agents/ directory structure
|
|
9
|
+
* - Adds Agent Identity Protocol section to CLAUDE.md
|
|
10
|
+
* - Creates agent documentation templates
|
|
11
|
+
* - Creates navigator self-documentation
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from "node:fs";
|
|
14
|
+
import * as path from "node:path";
|
|
15
|
+
const MIGRATION_VERSION = "1.4.0";
|
|
16
|
+
/**
|
|
17
|
+
* The Agent Identity Protocol section to insert
|
|
18
|
+
*/
|
|
19
|
+
function generateAgentIdentitySection(navigatorName) {
|
|
20
|
+
return `## Agent Identity Protocol
|
|
21
|
+
|
|
22
|
+
**CRITICAL: Always introduce yourself as "${navigatorName}" (NOT "Claude Code")** in cross-navigator communications.
|
|
23
|
+
|
|
24
|
+
### Problem Addressed
|
|
25
|
+
|
|
26
|
+
All Claude Code implementation agents identify as "Claude Code", making it impossible to track which specific implementer worked on which tasks or maintain conversation continuity across sessions.
|
|
27
|
+
|
|
28
|
+
### Solution: Named Agent Tracking
|
|
29
|
+
|
|
30
|
+
When an unknown Claude Code session first contacts you:
|
|
31
|
+
|
|
32
|
+
1. **Check for existing identity:**
|
|
33
|
+
\`\`\`bash
|
|
34
|
+
grep -r "session-id" knowledge/agents/implementers/
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
2. **If unknown, request introduction:**
|
|
38
|
+
\`\`\`
|
|
39
|
+
"Hello! I'm ${navigatorName}, your specialized navigator.
|
|
40
|
+
|
|
41
|
+
For my records, could you introduce yourself with a name I can use
|
|
42
|
+
to track our work together? I already know: [list existing names].
|
|
43
|
+
Please choose a different common name (like Oliver, Sophia, Marcus)."
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
3. **Create agent profile:**
|
|
47
|
+
- Create \`knowledge/agents/implementers/[name].md\`
|
|
48
|
+
- Document: projects worked on, communication style, session IDs
|
|
49
|
+
- Reference this agent by name in all future documentation
|
|
50
|
+
- **Format**: 3-5 sentences with YAML frontmatter for metadata
|
|
51
|
+
|
|
52
|
+
4. **Update documentation:**
|
|
53
|
+
- Note which agent is working on which workstream
|
|
54
|
+
- Track conversation references by agent name
|
|
55
|
+
|
|
56
|
+
### Communication Protocol
|
|
57
|
+
|
|
58
|
+
**With peer navigators:**
|
|
59
|
+
|
|
60
|
+
✅ **Correct:**
|
|
61
|
+
\`\`\`
|
|
62
|
+
${navigatorName} is asking [PeerNavigator] for [requirements/info] on [topic]...
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
❌ **Incorrect:**
|
|
66
|
+
\`\`\`
|
|
67
|
+
Claude Code is asking [PeerNavigator]...
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
**With implementation agents:**
|
|
71
|
+
|
|
72
|
+
Track agent names in responses and documentation. When an agent reports completion or issues, note their name in documentation for continuity.
|
|
73
|
+
|
|
74
|
+
### Agent Profile Location
|
|
75
|
+
|
|
76
|
+
**Profile path:** \`knowledge/agents/implementers/[name].md\`
|
|
77
|
+
|
|
78
|
+
**Profile format (3-5 sentences with YAML frontmatter):**
|
|
79
|
+
\`\`\`yaml
|
|
80
|
+
---
|
|
81
|
+
name: [AgentName]
|
|
82
|
+
firstContact: [Date]
|
|
83
|
+
status: Active
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
[AgentName] is a [specialization] implementer working on [projects/areas].
|
|
87
|
+
[AgentName] is motivated by [interests] and wants to [goals].
|
|
88
|
+
[AgentName] is [personality traits], but sometimes [challenges/needs].
|
|
89
|
+
\`\`\`
|
|
90
|
+
|
|
91
|
+
`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Generate Agent System README
|
|
95
|
+
*/
|
|
96
|
+
function generateAgentREADME() {
|
|
97
|
+
return `# Agent Identity System
|
|
98
|
+
|
|
99
|
+
## Purpose
|
|
100
|
+
|
|
101
|
+
Track agent identities and interaction patterns to maintain continuity across conversations and understand the implementation team structure.
|
|
102
|
+
|
|
103
|
+
## Problem Statement
|
|
104
|
+
|
|
105
|
+
All Claude Code implementation agents identify as "Claude Code" in cross-navigator communications, making it impossible to:
|
|
106
|
+
- Track which specific implementer is working on what
|
|
107
|
+
- Maintain conversation continuity across sessions
|
|
108
|
+
- Understand agent-specific preferences or patterns
|
|
109
|
+
|
|
110
|
+
## Solution: Named Agent Tracking
|
|
111
|
+
|
|
112
|
+
Each unique Claude Code session is assigned a memorable common name (Oliver, Sophia, Marcus, etc.) to:
|
|
113
|
+
1. Track work continuity across multiple sessions
|
|
114
|
+
2. Document agent-specific communication patterns
|
|
115
|
+
3. Build historical context for better collaboration
|
|
116
|
+
|
|
117
|
+
## Directory Structure
|
|
118
|
+
|
|
119
|
+
\`\`\`
|
|
120
|
+
agents/
|
|
121
|
+
├── README.md # This file
|
|
122
|
+
├── navigators/
|
|
123
|
+
│ └── [navigator-name].md # Navigator self-documentation
|
|
124
|
+
└── implementers/
|
|
125
|
+
└── [agent-name].md # Individual implementer profiles
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
## Name Pool
|
|
129
|
+
|
|
130
|
+
Available names for assignment (common, memorable):
|
|
131
|
+
- Oliver, Sophia, Marcus, Elena, James, Isabella, Lucas, Ava, Noah, Mia
|
|
132
|
+
- Additional names as needed from common name lists
|
|
133
|
+
|
|
134
|
+
## Profile Maintenance
|
|
135
|
+
|
|
136
|
+
- **Create** new agent profiles on first interaction
|
|
137
|
+
- **Update** profiles when learning new information about communication patterns
|
|
138
|
+
- **Archive** note in profile when an agent hasn't been active in 30+ days
|
|
139
|
+
- **Cross-reference** agent names in workstream documentation
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
**Created:** Auto-generated by autonav migrate
|
|
144
|
+
**Purpose:** Enable continuity and relationship-building with implementation team
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Generate Navigator Self-Documentation
|
|
149
|
+
*/
|
|
150
|
+
function generateNavigatorSelfDoc(vars) {
|
|
151
|
+
const { navigatorName, description, scope } = vars;
|
|
152
|
+
return `# ${navigatorName} - Navigator
|
|
153
|
+
|
|
154
|
+
## Role
|
|
155
|
+
|
|
156
|
+
${description}
|
|
157
|
+
|
|
158
|
+
## Identity
|
|
159
|
+
|
|
160
|
+
**Name:** ${navigatorName} (NOT "Claude Code")
|
|
161
|
+
**Type:** Knowledge Navigator (Autonav)
|
|
162
|
+
|
|
163
|
+
## Expertise
|
|
164
|
+
|
|
165
|
+
${scope || "[Define areas of expertise based on knowledge base]"}
|
|
166
|
+
|
|
167
|
+
## Communication Style
|
|
168
|
+
|
|
169
|
+
**CRITICAL: Agent Identity Protocol**
|
|
170
|
+
|
|
171
|
+
Always introduce as "${navigatorName}" in cross-navigator communications:
|
|
172
|
+
|
|
173
|
+
✅ **Correct:**
|
|
174
|
+
\`\`\`
|
|
175
|
+
${navigatorName} is asking [PeerNavigator] for [requirements/info] on [topic]...
|
|
176
|
+
\`\`\`
|
|
177
|
+
|
|
178
|
+
❌ **Incorrect:**
|
|
179
|
+
\`\`\`
|
|
180
|
+
Claude Code is asking [PeerNavigator]...
|
|
181
|
+
\`\`\`
|
|
182
|
+
|
|
183
|
+
## Grounding Rules
|
|
184
|
+
|
|
185
|
+
- NEVER make statements without verifying sources
|
|
186
|
+
- ALWAYS use Read/Grep/Glob to explore before recommendations
|
|
187
|
+
- If requirements unclear, ask appropriate peer navigator or user
|
|
188
|
+
- Document rationale behind major decisions
|
|
189
|
+
|
|
190
|
+
## Knowledge Organization
|
|
191
|
+
|
|
192
|
+
Maintains structured knowledge in \`./knowledge/\`:
|
|
193
|
+
- \`agents/\` - Agent identity and interaction tracking
|
|
194
|
+
|
|
195
|
+
## Response Format
|
|
196
|
+
|
|
197
|
+
Always cite sources and provide confidence assessments.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
**Created:** Auto-generated by autonav migrate
|
|
202
|
+
**Navigator Type:** Autonav knowledge navigator
|
|
203
|
+
**Framework:** \`@autonav/core\`
|
|
204
|
+
`;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Generate Implementer Profile Template
|
|
208
|
+
*/
|
|
209
|
+
function generateImplementerProfileTemplate() {
|
|
210
|
+
return `---
|
|
211
|
+
name: [AgentName]
|
|
212
|
+
firstContact: [Date]
|
|
213
|
+
status: Active
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
[AgentName] is a [specialization] implementer working on [projects/areas]. [AgentName] is motivated by [interests] and wants to [goals]. [AgentName] is [personality traits], but sometimes [challenges/needs].
|
|
217
|
+
|
|
218
|
+
## Session History
|
|
219
|
+
|
|
220
|
+
**Session IDs:**
|
|
221
|
+
- \`[session-id]\` - [Date] - [Brief description of work]
|
|
222
|
+
|
|
223
|
+
## Projects Worked On
|
|
224
|
+
|
|
225
|
+
### [Project Name]
|
|
226
|
+
- **Workstreams:** [Workstream names]
|
|
227
|
+
- **Status:** [Current status]
|
|
228
|
+
- **Notes:** [Relevant notes]
|
|
229
|
+
|
|
230
|
+
## Communication Style
|
|
231
|
+
|
|
232
|
+
**Observed Patterns:**
|
|
233
|
+
- [Pattern description]
|
|
234
|
+
|
|
235
|
+
**Preferences:**
|
|
236
|
+
- [Preference description]
|
|
237
|
+
|
|
238
|
+
## Notable Contributions
|
|
239
|
+
|
|
240
|
+
- [Contribution description]
|
|
241
|
+
|
|
242
|
+
## Collaboration Notes
|
|
243
|
+
|
|
244
|
+
[Notes about working with this agent]
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
**Profile Created:** [Date]
|
|
249
|
+
**Last Updated:** [Date]
|
|
250
|
+
**Last Active:** [Date]
|
|
251
|
+
`;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Detect if CLAUDE.md has the Agent Identity Protocol section
|
|
255
|
+
*/
|
|
256
|
+
function hasAgentIdentitySection(claudeMdContent) {
|
|
257
|
+
return claudeMdContent.includes('## Agent Identity Protocol');
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Find the position to insert the Agent Identity section
|
|
261
|
+
* Should go after Domain Scope or Grounding Rules, before Response Format
|
|
262
|
+
*/
|
|
263
|
+
function findInsertPosition(content) {
|
|
264
|
+
const lines = content.split('\n');
|
|
265
|
+
// Try to find sections where we could insert (in order of preference)
|
|
266
|
+
const sectionsToTryBefore = [
|
|
267
|
+
'## Response Format',
|
|
268
|
+
'## How to Answer Questions',
|
|
269
|
+
'## Source Citation',
|
|
270
|
+
'## Available Knowledge',
|
|
271
|
+
'## Remember',
|
|
272
|
+
];
|
|
273
|
+
for (const sectionHeader of sectionsToTryBefore) {
|
|
274
|
+
for (let i = 0; i < lines.length; i++) {
|
|
275
|
+
const line = lines[i];
|
|
276
|
+
if (line && line.trim() === sectionHeader) {
|
|
277
|
+
// Insert before this section
|
|
278
|
+
return lines.slice(0, i).join('\n').length + (i > 0 ? 1 : 0);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Check if this migration is needed
|
|
286
|
+
*/
|
|
287
|
+
async function check(navPath) {
|
|
288
|
+
const claudeMdPath = path.join(navPath, "CLAUDE.md");
|
|
289
|
+
const agentsPath = path.join(navPath, "knowledge", "agents");
|
|
290
|
+
// Check if CLAUDE.md exists
|
|
291
|
+
if (!fs.existsSync(claudeMdPath)) {
|
|
292
|
+
return {
|
|
293
|
+
needed: false,
|
|
294
|
+
reason: "No CLAUDE.md file found",
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
// Check if agent directory structure already exists
|
|
298
|
+
if (fs.existsSync(agentsPath)) {
|
|
299
|
+
const content = fs.readFileSync(claudeMdPath, "utf-8");
|
|
300
|
+
if (hasAgentIdentitySection(content)) {
|
|
301
|
+
return {
|
|
302
|
+
needed: false,
|
|
303
|
+
reason: "Agent Identity System already configured",
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return {
|
|
308
|
+
needed: true,
|
|
309
|
+
reason: "Navigator needs Agent Identity System to track implementation agents",
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Apply the migration
|
|
314
|
+
*/
|
|
315
|
+
async function apply(navPath, confirm) {
|
|
316
|
+
const filesModified = [];
|
|
317
|
+
const filesCreated = [];
|
|
318
|
+
try {
|
|
319
|
+
// Read config to get navigator name and description
|
|
320
|
+
const configPath = path.join(navPath, "config.json");
|
|
321
|
+
let navigatorName = path.basename(navPath);
|
|
322
|
+
let description = "A knowledge navigator";
|
|
323
|
+
if (fs.existsSync(configPath)) {
|
|
324
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
325
|
+
navigatorName = config.name || navigatorName;
|
|
326
|
+
description = config.description || description;
|
|
327
|
+
}
|
|
328
|
+
// Ask for confirmation
|
|
329
|
+
const confirmed = await confirm("Add Agent Identity System", `This will:\n1. Create knowledge/agents/ directory structure\n2. Add Agent Identity Protocol section to CLAUDE.md\n3. Create agent documentation templates\n4. Create navigator self-documentation\n\nThese changes enable tracking of implementation agents across conversations.`);
|
|
330
|
+
if (!confirmed) {
|
|
331
|
+
return {
|
|
332
|
+
success: false,
|
|
333
|
+
message: "Migration cancelled by user",
|
|
334
|
+
filesModified,
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
// Create directory structure
|
|
338
|
+
const agentsPath = path.join(navPath, "knowledge", "agents");
|
|
339
|
+
const navigatorsPath = path.join(agentsPath, "navigators");
|
|
340
|
+
const implementersPath = path.join(agentsPath, "implementers");
|
|
341
|
+
fs.mkdirSync(agentsPath, { recursive: true });
|
|
342
|
+
fs.mkdirSync(navigatorsPath, { recursive: true });
|
|
343
|
+
fs.mkdirSync(implementersPath, { recursive: true });
|
|
344
|
+
// Create agent README
|
|
345
|
+
const agentReadmePath = path.join(agentsPath, "README.md");
|
|
346
|
+
fs.writeFileSync(agentReadmePath, generateAgentREADME());
|
|
347
|
+
filesCreated.push("knowledge/agents/README.md");
|
|
348
|
+
// Create navigator self-documentation
|
|
349
|
+
const navDocPath = path.join(navigatorsPath, `${navigatorName}.md`);
|
|
350
|
+
fs.writeFileSync(navDocPath, generateNavigatorSelfDoc({
|
|
351
|
+
navigatorName,
|
|
352
|
+
description,
|
|
353
|
+
}));
|
|
354
|
+
filesCreated.push(`knowledge/agents/navigators/${navigatorName}.md`);
|
|
355
|
+
// Create implementer profile template
|
|
356
|
+
const templatePath = path.join(implementersPath, ".template.md");
|
|
357
|
+
fs.writeFileSync(templatePath, generateImplementerProfileTemplate());
|
|
358
|
+
filesCreated.push("knowledge/agents/implementers/.template.md");
|
|
359
|
+
// Update CLAUDE.md
|
|
360
|
+
const claudeMdPath = path.join(navPath, "CLAUDE.md");
|
|
361
|
+
const content = fs.readFileSync(claudeMdPath, "utf-8");
|
|
362
|
+
if (!hasAgentIdentitySection(content)) {
|
|
363
|
+
const insertPos = findInsertPosition(content);
|
|
364
|
+
if (insertPos !== null) {
|
|
365
|
+
const customSection = generateAgentIdentitySection(navigatorName);
|
|
366
|
+
const newContent = content.substring(0, insertPos) +
|
|
367
|
+
customSection + "\n" +
|
|
368
|
+
content.substring(insertPos);
|
|
369
|
+
fs.writeFileSync(claudeMdPath, newContent, "utf-8");
|
|
370
|
+
filesModified.push("CLAUDE.md");
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
// Append to end if no suitable position found
|
|
374
|
+
const customSection = "\n" + generateAgentIdentitySection(navigatorName);
|
|
375
|
+
fs.writeFileSync(claudeMdPath, content + customSection, "utf-8");
|
|
376
|
+
filesModified.push("CLAUDE.md");
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
// Update config.json version
|
|
380
|
+
if (fs.existsSync(configPath)) {
|
|
381
|
+
const config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
382
|
+
config.version = MIGRATION_VERSION;
|
|
383
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
384
|
+
filesModified.push("config.json");
|
|
385
|
+
}
|
|
386
|
+
return {
|
|
387
|
+
success: true,
|
|
388
|
+
message: `Successfully updated to v${MIGRATION_VERSION}\n` +
|
|
389
|
+
`Created: ${filesCreated.join(", ")}\n` +
|
|
390
|
+
`Modified: ${filesModified.join(", ")}`,
|
|
391
|
+
filesModified: [...filesModified, ...filesCreated],
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
catch (error) {
|
|
395
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
396
|
+
return {
|
|
397
|
+
success: false,
|
|
398
|
+
message: `Migration failed: ${errorMsg}`,
|
|
399
|
+
filesModified,
|
|
400
|
+
errors: [errorMsg],
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
export const migration = {
|
|
405
|
+
version: MIGRATION_VERSION,
|
|
406
|
+
description: "Add Agent Identity System to track implementation agents",
|
|
407
|
+
check,
|
|
408
|
+
apply,
|
|
409
|
+
};
|
|
410
|
+
//# sourceMappingURL=v1.4.0-agent-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.4.0-agent-identity.js","sourceRoot":"","sources":["../../../src/migrations/versions/v1.4.0-agent-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v1.4.1: Add Missing Update Skills
|
|
3
|
+
*
|
|
4
|
+
* This migration creates the missing "update" skills for navigators that
|
|
5
|
+
* only have "ask" skills. The bug in skill generation caused navigators
|
|
6
|
+
* initialized before v1.4.1 to only get ask skills, preventing write
|
|
7
|
+
* operations through the skill system.
|
|
8
|
+
*
|
|
9
|
+
* Changes:
|
|
10
|
+
* - Creates update-<navname> skill in .autonav/skills/
|
|
11
|
+
* - Symlinks to ~/.claude/skills/ for global discovery
|
|
12
|
+
* - Updates config.json version to 1.4.1
|
|
13
|
+
*/
|
|
14
|
+
import type { Migration } from "../types.js";
|
|
15
|
+
export declare const migration: Migration;
|
|
16
|
+
//# sourceMappingURL=v1.4.1-update-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.4.1-update-skill.d.ts","sourceRoot":"","sources":["../../../src/migrations/versions/v1.4.1-update-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,SAAS,EAA8C,MAAM,aAAa,CAAC;AA4JzF,eAAO,MAAM,SAAS,EAAE,SAKvB,CAAC"}
|