ai-spector 0.8.50 → 0.8.51
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 +0 -0
- package/dist/core/config/load.d.ts +1 -1
- package/dist/core/config/load.d.ts.map +1 -1
- package/dist/core/config/load.js +7 -2
- package/dist/core/config/load.js.map +1 -1
- package/dist/core/course/catalog.d.ts +6 -0
- package/dist/core/course/catalog.d.ts.map +1 -1
- package/dist/core/course/catalog.js +43 -7
- package/dist/core/course/catalog.js.map +1 -1
- package/dist/interfaces/mcp/server.js +0 -0
- package/package.json +2 -1
- package/website/README.md +40 -0
- package/website/docs/00-overview.md +44 -0
- package/website/docs/01-get-started/01-prerequisites-and-init.md +82 -0
- package/website/docs/01-get-started/02-setup-and-skills.md +50 -0
- package/website/docs/01-get-started/README.md +10 -0
- package/website/docs/01-get-started/_category_.json +4 -0
- package/website/docs/02-chat-basics/01-how-chat-works.md +48 -0
- package/website/docs/02-chat-basics/02-workspace-and-tasks.md +55 -0
- package/website/docs/02-chat-basics/README.md +10 -0
- package/website/docs/02-chat-basics/_category_.json +4 -0
- package/website/docs/03-graph/01-sources-and-analyze.md +44 -0
- package/website/docs/03-graph/02-validate-index-explore.md +57 -0
- package/website/docs/03-graph/README.md +10 -0
- package/website/docs/03-graph/_category_.json +4 -0
- package/website/docs/04-generate/01-generate-srs.md +63 -0
- package/website/docs/04-generate/02-basic-design.md +44 -0
- package/website/docs/04-generate/README.md +12 -0
- package/website/docs/04-generate/_category_.json +4 -0
- package/website/docs/05-prototype/01-translations.md +26 -0
- package/website/docs/05-prototype/02-build-prototype.md +54 -0
- package/website/docs/05-prototype/README.md +10 -0
- package/website/docs/05-prototype/_category_.json +4 -0
- package/website/docs/06-review/01-review-comments-changes.md +55 -0
- package/website/docs/06-review/README.md +9 -0
- package/website/docs/06-review/_category_.json +4 -0
- package/website/docs/07-advanced/01-custom-templates.md +30 -0
- package/website/docs/07-advanced/02-search-and-editors.md +36 -0
- package/website/docs/07-advanced/README.md +10 -0
- package/website/docs/07-advanced/_category_.json +4 -0
- package/website/docs/README.md +59 -0
- package/website/docs/vi/00-overview.md +44 -0
- package/website/docs/vi/01-get-started/01-prerequisites-and-init.md +82 -0
- package/website/docs/vi/01-get-started/02-setup-and-skills.md +50 -0
- package/website/docs/vi/01-get-started/README.md +10 -0
- package/website/docs/vi/01-get-started/_category_.json +4 -0
- package/website/docs/vi/02-chat-basics/01-how-chat-works.md +48 -0
- package/website/docs/vi/02-chat-basics/02-workspace-and-tasks.md +55 -0
- package/website/docs/vi/02-chat-basics/README.md +10 -0
- package/website/docs/vi/02-chat-basics/_category_.json +4 -0
- package/website/docs/vi/03-graph/01-sources-and-analyze.md +44 -0
- package/website/docs/vi/03-graph/02-validate-index-explore.md +57 -0
- package/website/docs/vi/03-graph/README.md +10 -0
- package/website/docs/vi/03-graph/_category_.json +4 -0
- package/website/docs/vi/04-generate/01-generate-srs.md +63 -0
- package/website/docs/vi/04-generate/02-basic-design.md +44 -0
- package/website/docs/vi/04-generate/README.md +12 -0
- package/website/docs/vi/04-generate/_category_.json +4 -0
- package/website/docs/vi/05-prototype/01-translations.md +26 -0
- package/website/docs/vi/05-prototype/02-build-prototype.md +54 -0
- package/website/docs/vi/05-prototype/README.md +10 -0
- package/website/docs/vi/05-prototype/_category_.json +4 -0
- package/website/docs/vi/06-review/01-review-comments-changes.md +55 -0
- package/website/docs/vi/06-review/README.md +9 -0
- package/website/docs/vi/06-review/_category_.json +4 -0
- package/website/docs/vi/07-advanced/01-custom-templates.md +30 -0
- package/website/docs/vi/07-advanced/02-search-and-editors.md +36 -0
- package/website/docs/vi/07-advanced/README.md +10 -0
- package/website/docs/vi/07-advanced/_category_.json +4 -0
- package/website/docs/vi/README.md +53 -0
package/dist/cli.js
CHANGED
|
File without changes
|
|
@@ -6,7 +6,7 @@ export declare function packageBundleRoot(): string;
|
|
|
6
6
|
export declare function scaffoldBundleRoot(): string;
|
|
7
7
|
/** Bundled UI themes for HTML prototypes (`assets/themes/<name>/DESIGN.md`). */
|
|
8
8
|
export declare function themesBundleRoot(): string;
|
|
9
|
-
/** Step-by-step user course (`website/docs/`,
|
|
9
|
+
/** Step-by-step user course (`website/docs/`, legacy path `docs/course/`). */
|
|
10
10
|
export declare function courseBundleRoot(): string;
|
|
11
11
|
/** Cursor commands/skills/MCP bundled under scaffold (not `.cursor/` — root gitignore). */
|
|
12
12
|
export declare function scaffoldCursorBundleRoot(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/core/config/load.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAIhE,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/core/config/load.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAIhE,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAGD,2FAA2F;AAC3F,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,sEAAsE;AACtE,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,KAAK,SAAgB,GAAG,MAAM,CAkB7D;AAkBD,wBAAsB,iBAAiB,CACrC,IAAI,SAAoB,GACvB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAsCtE;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAM9B;AAqBD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAcvE;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAErE;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAMpE;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,KAAK,GAAE,UAAU,GAAG,QAAqB,GACxC,MAAM,CAER;AAED,mFAAmF;AACnF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB,MAAM,CAER;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC,CASD;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAS9E"}
|
package/dist/core/config/load.js
CHANGED
|
@@ -17,9 +17,14 @@ export function scaffoldBundleRoot() {
|
|
|
17
17
|
export function themesBundleRoot() {
|
|
18
18
|
return join(packageBundleRoot(), "assets", "themes");
|
|
19
19
|
}
|
|
20
|
-
/** Step-by-step user course (`website/docs/`,
|
|
20
|
+
/** Step-by-step user course (`website/docs/`, legacy path `docs/course/`). */
|
|
21
21
|
export function courseBundleRoot() {
|
|
22
|
-
|
|
22
|
+
const root = packageBundleRoot();
|
|
23
|
+
const primary = join(root, "website", "docs");
|
|
24
|
+
if (existsSync(primary)) {
|
|
25
|
+
return primary;
|
|
26
|
+
}
|
|
27
|
+
return join(root, "docs", "course");
|
|
23
28
|
}
|
|
24
29
|
/** Cursor commands/skills/MCP bundled under scaffold (not `.cursor/` — root gitignore). */
|
|
25
30
|
export function scaffoldCursorBundleRoot() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/core/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,mEAAmE;AACnE,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACtE,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../src/core/config/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@ export interface CoursePage {
|
|
|
9
9
|
sectionId?: string;
|
|
10
10
|
sectionTitle?: string;
|
|
11
11
|
}
|
|
12
|
+
export declare class CourseNotFoundError extends Error {
|
|
13
|
+
readonly locale: CourseLocale;
|
|
14
|
+
readonly checkedPaths: string[];
|
|
15
|
+
constructor(locale: CourseLocale, checkedPaths: string[]);
|
|
16
|
+
}
|
|
17
|
+
export declare function formatCourseNotFoundMessage(locale: CourseLocale, checkedPaths: string[]): string;
|
|
12
18
|
/** Prefer project-local course copy when present; otherwise bundled docs. */
|
|
13
19
|
export declare function resolveCourseRoot(projectRoot?: string, locale?: CourseLocale): Promise<string>;
|
|
14
20
|
export declare function loadCoursePages(courseRoot: string, locale?: CourseLocale): Promise<CoursePage[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/course/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2ED,6EAA6E;AAC7E,wBAAsB,iBAAiB,CACrC,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/course/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2ED,qBAAa,mBAAoB,SAAQ,KAAK;IAE1C,QAAQ,CAAC,MAAM,EAAE,YAAY;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;gBADtB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EAAE;CAKlC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,CAgBR;AAED,6EAA6E;AAC7E,wBAAsB,iBAAiB,CACrC,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,YAAoC,GAC3C,OAAO,CAAC,UAAU,EAAE,CAAC,CAqBvB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAGpF;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EAAE,EACnB,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,CAYhE"}
|
|
@@ -68,26 +68,62 @@ function titleFromMarkdown(markdown, fallback) {
|
|
|
68
68
|
}
|
|
69
69
|
return line.slice(2).trim();
|
|
70
70
|
}
|
|
71
|
+
export class CourseNotFoundError extends Error {
|
|
72
|
+
locale;
|
|
73
|
+
checkedPaths;
|
|
74
|
+
constructor(locale, checkedPaths) {
|
|
75
|
+
super(formatCourseNotFoundMessage(locale, checkedPaths));
|
|
76
|
+
this.locale = locale;
|
|
77
|
+
this.checkedPaths = checkedPaths;
|
|
78
|
+
this.name = "CourseNotFoundError";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export function formatCourseNotFoundMessage(locale, checkedPaths) {
|
|
82
|
+
const langLabel = locale === "vi" ? "Vietnamese" : "English";
|
|
83
|
+
const lines = [
|
|
84
|
+
`Course files not found (${langLabel}).`,
|
|
85
|
+
"",
|
|
86
|
+
"Checked:",
|
|
87
|
+
...checkedPaths.map((p) => ` - ${p}`),
|
|
88
|
+
"",
|
|
89
|
+
"Fix:",
|
|
90
|
+
" 1. Reinstall ai-spector (course ships in node_modules/ai-spector/website/docs/):",
|
|
91
|
+
" npm install ai-spector",
|
|
92
|
+
" 2. Or add a local copy in your project:",
|
|
93
|
+
" docs/course/ (optional override)",
|
|
94
|
+
" 3. From the ai-spector repo: edit website/docs/ (docs/course is a dev symlink).",
|
|
95
|
+
];
|
|
96
|
+
return lines.join("\n");
|
|
97
|
+
}
|
|
71
98
|
/** Prefer project-local course copy when present; otherwise bundled docs. */
|
|
72
99
|
export async function resolveCourseRoot(projectRoot, locale = DEFAULT_COURSE_LOCALE) {
|
|
73
100
|
const bundled = courseBundleRoot();
|
|
74
|
-
const
|
|
101
|
+
const local = projectRoot ? join(projectRoot, "docs", "course") : undefined;
|
|
75
102
|
if (locale === "vi") {
|
|
76
|
-
const
|
|
77
|
-
|
|
103
|
+
const checkedPaths = [];
|
|
104
|
+
if (local) {
|
|
105
|
+
checkedPaths.push(join(local, "vi"));
|
|
106
|
+
}
|
|
107
|
+
checkedPaths.push(join(bundled, "vi"));
|
|
108
|
+
for (const root of checkedPaths) {
|
|
78
109
|
if (await pathExists(root)) {
|
|
79
110
|
return root;
|
|
80
111
|
}
|
|
81
112
|
}
|
|
82
|
-
throw new
|
|
113
|
+
throw new CourseNotFoundError(locale, checkedPaths);
|
|
83
114
|
}
|
|
84
|
-
|
|
85
|
-
|
|
115
|
+
const checkedPaths = [];
|
|
116
|
+
if (local) {
|
|
117
|
+
checkedPaths.push(local);
|
|
86
118
|
if (await pathExists(local)) {
|
|
87
119
|
return local;
|
|
88
120
|
}
|
|
89
121
|
}
|
|
90
|
-
|
|
122
|
+
checkedPaths.push(bundled);
|
|
123
|
+
if (await pathExists(bundled)) {
|
|
124
|
+
return bundled;
|
|
125
|
+
}
|
|
126
|
+
throw new CourseNotFoundError(locale, checkedPaths);
|
|
91
127
|
}
|
|
92
128
|
export async function loadCoursePages(courseRoot, locale = DEFAULT_COURSE_LOCALE) {
|
|
93
129
|
const relPaths = await collectMarkdownFiles(courseRoot);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/course/catalog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/course/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAanE,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,IAAI,GAAG,GAAG,EACV,SAAS,GAAG,KAAK;IAEjB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QACnD,OAAO,OAAO,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,OAAO,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IACA;IAFX,YACW,MAAoB,EACpB,YAAsB;QAE/B,KAAK,CAAC,2BAA2B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QAHhD,WAAM,GAAN,MAAM,CAAc;QACpB,iBAAY,GAAZ,YAAY,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAoB,EACpB,YAAsB;IAEtB,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,KAAK,GAAG;QACZ,2BAA2B,SAAS,IAAI;QACxC,EAAE;QACF,UAAU;QACV,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,EAAE;QACF,MAAM;QACN,oFAAoF;QACpF,+BAA+B;QAC/B,2CAA2C;QAC3C,0CAA0C;QAC1C,mFAAmF;KACpF,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAoB,EACpB,SAAuB,qBAAqB;IAE5C,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,SAAuB,qBAAqB;IAE5C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,OAAO;YACP,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;YAChC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC;YACxC,SAAS;YACT,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAmB,EAAE,IAAY;IAC1D,MAAM,UAAU,GAAG,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAmB,EACnB,IAAY;IAEZ,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO;QACL,OAAO;QACP,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KAC5E,CAAC;AACJ,CAAC"}
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-spector",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.51",
|
|
4
4
|
"description": "Cursor-first documentation workflow: traceability graph, SRS/basic/detail design templates, and ai-spector CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"documents-basic-design.json",
|
|
34
34
|
"scaffold",
|
|
35
35
|
"assets",
|
|
36
|
+
"website/docs",
|
|
36
37
|
"docs/course",
|
|
37
38
|
"README.md",
|
|
38
39
|
"README.vi.md",
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# AI Spector docs site (Docusaurus)
|
|
2
|
+
|
|
3
|
+
## Single source of truth
|
|
4
|
+
|
|
5
|
+
| Language | Edit here |
|
|
6
|
+
|----------|-----------|
|
|
7
|
+
| English | `website/docs/` |
|
|
8
|
+
| Tiếng Việt | `website/docs/vi/` |
|
|
9
|
+
|
|
10
|
+
```text
|
|
11
|
+
website/docs/ ← canonical (EN + vi/)
|
|
12
|
+
docs/course → symlink → website/docs/ (npm + course serve)
|
|
13
|
+
website/i18n/.../current/ → rsync mirror of docs/vi/ (generated, gitignored)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Do not edit** `website/i18n/vi/.../current/` — it is rebuilt on every `npm start` / `npm run build`.
|
|
17
|
+
|
|
18
|
+
## Commands
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cd website && npm install
|
|
22
|
+
npm start # http://localhost:3000/docs/
|
|
23
|
+
npm run build
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
From repo root: `npm run docs:dev`
|
|
27
|
+
|
|
28
|
+
## Languages
|
|
29
|
+
|
|
30
|
+
- **English:** `/docs/`
|
|
31
|
+
- **Tiếng Việt:** `/vi/docs/` (locale dropdown)
|
|
32
|
+
|
|
33
|
+
## vs `course serve`
|
|
34
|
+
|
|
35
|
+
Same files via `docs/course` symlink:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx ai-spector course serve --open
|
|
39
|
+
npx ai-spector course serve --open --lang vi
|
|
40
|
+
```
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# AI Spector — Course Overview
|
|
6
|
+
|
|
7
|
+
Documentation workflow in **Cursor** or **Claude Code**: traceability graph, SRS, basic design, prototypes. **Describe what you need in chat.**
|
|
8
|
+
|
|
9
|
+
Browse: `npx ai-spector course serve --open` · Tiếng Việt: `--lang vi` → `/course/vi/`
|
|
10
|
+
|
|
11
|
+
**In chat:** *"open the course"* · *"learn ai-spector"* · *"mở khóa học ai-spector"*
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Structure
|
|
16
|
+
|
|
17
|
+
**7 sections, 13 lessons** — each lesson ~10–15 min, one coherent task. No micro-steps for things you do in a single sitting.
|
|
18
|
+
|
|
19
|
+
| Section | Lessons |
|
|
20
|
+
|---------|---------|
|
|
21
|
+
| [Get started](01-get-started/README.md) | Prerequisites & init · Setup & skills |
|
|
22
|
+
| [Chat basics](02-chat-basics/README.md) | How chat works · Workspace & tasks |
|
|
23
|
+
| [Graph & sources](03-graph/README.md) | Sources & analyze · Validate & explore |
|
|
24
|
+
| [Generate documents](04-generate/README.md) | Generate SRS · Basic design |
|
|
25
|
+
| [Design & prototype](05-prototype/README.md) | Translations *(opt)* · Build prototype |
|
|
26
|
+
| [Review & changes](06-review/README.md) | Review, comments & incremental edits |
|
|
27
|
+
| [Advanced](07-advanced/README.md) | Custom templates · Search & editors |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Pipeline
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
docs/data-source/ → analyze → validate → generate SRS (gated) → basic design
|
|
35
|
+
→ prototype → review documents
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Every **generate** run: workspace check → clarify → plan approval → waves → spec review.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Next
|
|
43
|
+
|
|
44
|
+
[Get started](01-get-started/README.md)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Prerequisites & initialize
|
|
2
|
+
|
|
3
|
+
**Section:** [Get started](README.md) · **Course:** [Home](../README.md)
|
|
4
|
+
**Time:** ~10 min
|
|
5
|
+
|
|
6
|
+
**Goal:** Confirm your environment, install AI Spector, and scaffold the project.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
| Requirement | Command | Need |
|
|
13
|
+
|-------------|---------|------|
|
|
14
|
+
| Node.js ≥ 20 | `node --version` | Required |
|
|
15
|
+
| Git | `git --version` | Required |
|
|
16
|
+
| Cursor or Claude Code | open editor | Required |
|
|
17
|
+
| Python ≥ 3.11 | `python3 --version` | Optional (semantic search later) |
|
|
18
|
+
|
|
19
|
+
AI Spector must run inside a Git repo:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
cd /path/to/your/project
|
|
23
|
+
git status # or: git init && git commit -m "initial commit"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
If you have no `package.json` yet: `npm init -y`
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Install & init
|
|
31
|
+
|
|
32
|
+
**Two steps** — install the package first, then run the wizard.
|
|
33
|
+
|
|
34
|
+
**Internal registry** (no `npm login`):
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install ai-spector --registry http://10.101.0.239:4873
|
|
38
|
+
npx ai-spector init
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Public npm:**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install ai-spector
|
|
45
|
+
npx ai-spector init
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Wizard: **editor** (Cursor / Claude / both), **languages**, **git hook** (yes), **CocoIndex** (no for now).
|
|
49
|
+
|
|
50
|
+
| Created | Purpose |
|
|
51
|
+
|---------|---------|
|
|
52
|
+
| `.ai-spector/` | Config, graph, templates |
|
|
53
|
+
| `docs/data-source/` | Input requirements |
|
|
54
|
+
| `docs/srs/`, `docs/basic-design/` | Generated output |
|
|
55
|
+
| `.cursor/` or `.claude/skills/` | Agent skills + MCP |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Check
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
ls .ai-spector/ docs/data-source/
|
|
63
|
+
ls node_modules/ai-spector # package installed locally
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Troubleshooting
|
|
69
|
+
|
|
70
|
+
**`npx ai-spector init` not found**
|
|
71
|
+
|
|
72
|
+
Run `npm install ai-spector` first (with `--registry` on the internal network).
|
|
73
|
+
|
|
74
|
+
**Registry error on install**
|
|
75
|
+
|
|
76
|
+
Check VPN / company network, then retry the `npm install` command.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Next
|
|
81
|
+
|
|
82
|
+
[Setup in chat & enable skills](02-setup-and-skills.md)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Setup in chat & enable skills
|
|
2
|
+
|
|
3
|
+
**Section:** [Get started](README.md) · **Course:** [Home](../README.md)
|
|
4
|
+
**Time:** ~10 min · **Before:** [Prerequisites & init](01-prerequisites-and-init.md)
|
|
5
|
+
|
|
6
|
+
**Goal:** Finish npm/MCP setup in chat and turn on skill routing.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Finish setup in chat
|
|
11
|
+
|
|
12
|
+
Open the project in Cursor or Claude Code, then say:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
setup ai-spector project
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The agent installs `ai-spector`, verifies config, and prints a checklist. Confirm with:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
check ai-spector setup
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Browse the course while you wait: `npx ai-spector course serve --open`
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Enable skills
|
|
29
|
+
|
|
30
|
+
**Cursor:** Settings → Rules → **Agent Skills** → enable every folder under `.cursor/skills/`. Reload MCP.
|
|
31
|
+
|
|
32
|
+
**Claude Code:** Skills load from `.claude/skills/` automatically. Reload MCP via restart or `/mcp`.
|
|
33
|
+
|
|
34
|
+
Key skills: `ai-spector`, `ai-spector-review`, `ai-spector-graph`, `ai-spector-generate-srs`.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Check
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
validate the graph
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The agent invokes a graph tool (empty graph is fine) — not a generic refusal.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Next section
|
|
49
|
+
|
|
50
|
+
[Chat basics — How chat works](../02-chat-basics/01-how-chat-works.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Section: Get started
|
|
2
|
+
|
|
3
|
+
Install AI Spector and make the agent ready to work.
|
|
4
|
+
|
|
5
|
+
| Lesson | Time | Goal |
|
|
6
|
+
|--------|------|------|
|
|
7
|
+
| [Prerequisites & init](01-prerequisites-and-init.md) | 10 min | Install package + `npx ai-spector init` |
|
|
8
|
+
| [Setup & skills](02-setup-and-skills.md) | 10 min | Chat setup + enable skill routing |
|
|
9
|
+
|
|
10
|
+
**Next section:** [Chat basics](../02-chat-basics/README.md)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# How chat works
|
|
2
|
+
|
|
3
|
+
**Section:** [Chat basics](README.md) · **Course:** [Home](../README.md)
|
|
4
|
+
**Time:** ~10 min
|
|
5
|
+
|
|
6
|
+
**Goal:** Understand routing and what “approve” means.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Orchestrator & workers
|
|
11
|
+
|
|
12
|
+
| Layer | Role |
|
|
13
|
+
|-------|------|
|
|
14
|
+
| **Orchestrator** | Classifies intent, asks routing questions, spawns workers |
|
|
15
|
+
| **Worker** | One job per runbook (analyze, generate, review…) |
|
|
16
|
+
|
|
17
|
+
Describe what you need in chat — skills route to the right worker. Same phrases work in **Cursor** and **Claude Code**.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Common phrases
|
|
22
|
+
|
|
23
|
+
| You want to… | Say (examples) |
|
|
24
|
+
|--------------|----------------|
|
|
25
|
+
| Generate SRS | *“generate the SRS”*, *“write use cases”* |
|
|
26
|
+
| Sign off a document | *“review documents”*, *“approve srs/01-overview”* |
|
|
27
|
+
| Resolve feedback | *“resolve comments”*, *“show open comments”* |
|
|
28
|
+
| Analyze sources | *“analyze my data source”* |
|
|
29
|
+
| Check workspace | *“check my workspace”* |
|
|
30
|
+
|
|
31
|
+
Unsure? Say *“help me approve”* — the agent asks one clarifying question.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Four kinds of “approve”
|
|
36
|
+
|
|
37
|
+
| You mean | Say | Not this |
|
|
38
|
+
|----------|-----|----------|
|
|
39
|
+
| Sign off a document | *“review srs/01-overview”*, *“approve the SRS”* | spec / plan / comment |
|
|
40
|
+
| Approve extracted spec | *“approve SPEC-001”* | document sign-off |
|
|
41
|
+
| Execute a plan | *“yes, go ahead”* after plan table | document sign-off |
|
|
42
|
+
| Close comment thread | *“resolve C-012”* | document sign-off |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Next
|
|
47
|
+
|
|
48
|
+
[Workspace & tasks](02-workspace-and-tasks.md)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Workspace & tasks
|
|
2
|
+
|
|
3
|
+
**Section:** [Chat basics](README.md) · **Course:** [Home](../README.md)
|
|
4
|
+
**Time:** ~10 min · **Before:** [How chat works](01-how-chat-works.md)
|
|
5
|
+
|
|
6
|
+
**Goal:** Audit project health and resume paused work.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Check workspace
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
check my workspace
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
why did pre-commit block me
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
stale clarifications
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
CLI: `npx ai-spector setup --check`
|
|
25
|
+
|
|
26
|
+
Use after init, upgrades, or failed commits.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Tasks & resume
|
|
31
|
+
|
|
32
|
+
Generation runs are **tasks** with saved state (clarifications, plans, wave progress).
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
active tasks
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
resume my SRS
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
pause task
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
| Phrase | Means |
|
|
47
|
+
|--------|-------|
|
|
48
|
+
| *resume SRS* | Continue a **generation task** |
|
|
49
|
+
| *review documents* | **Document sign-off** (different workflow) |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Next section
|
|
54
|
+
|
|
55
|
+
[Graph & sources](../03-graph/README.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Section: Chat basics
|
|
2
|
+
|
|
3
|
+
How the agent routes your requests.
|
|
4
|
+
|
|
5
|
+
| Lesson | Time | Goal |
|
|
6
|
+
|--------|------|------|
|
|
7
|
+
| [How chat works](01-how-chat-works.md) | 10 min | Routing, common phrases, approve types |
|
|
8
|
+
| [Workspace & tasks](02-workspace-and-tasks.md) | 10 min | Health check, resume/pause |
|
|
9
|
+
|
|
10
|
+
**Next section:** [Graph & sources](../03-graph/README.md)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Add sources & analyze
|
|
2
|
+
|
|
3
|
+
**Section:** [Graph & sources](README.md) · **Course:** [Home](../README.md)
|
|
4
|
+
**Time:** ~10 min
|
|
5
|
+
|
|
6
|
+
**Goal:** Put requirements in place and extract them into the traceability graph.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Add source material
|
|
11
|
+
|
|
12
|
+
Drop files into `docs/data-source/` — `.md`, `.txt`, or `.pdf` (text must be selectable).
|
|
13
|
+
|
|
14
|
+
Include meeting notes, user stories, BRDs, API descriptions. The agent reads but never modifies these files.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
ls docs/data-source/ # at least one file before analyze
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Analyze
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
analyze my data source
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The agent extracts actors, use cases, and features into `.ai-spector/graph/traceability.graph.json`. Review the summary; add detail to sources and re-run if something is missing.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Check
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
validate the graph
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
No critical errors (warnings are OK at this stage).
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Next
|
|
43
|
+
|
|
44
|
+
[Validate, index & explore](02-validate-index-explore.md)
|