@ngocsangairvds/vsaf 6.1.0 → 6.2.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/package.json +1 -1
- package/packages/cli/dist/server/routes/runs.d.ts +1 -1
- package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
- package/packages/cli/dist/server/routes/runs.js +33 -11
- package/packages/cli/dist/server/routes/runs.js.map +1 -1
- package/packages/cli/dist/server/routes/workflows.js +1 -1
- package/packages/cli/dist/server/routes/workflows.js.map +1 -1
- package/skills/sdlc/onboard-code/cross-domain/SKILL.md +10 -0
- package/skills/sdlc/onboard-code/cross-domain/step.md +11 -0
- package/skills/sdlc/onboard-code/detect-structure/SKILL.md +10 -0
- package/skills/sdlc/onboard-code/detect-structure/step.md +7 -0
- package/skills/sdlc/onboard-code/env-docker/SKILL.md +10 -0
- package/skills/sdlc/onboard-code/env-docker/step.md +7 -0
- package/skills/sdlc/onboard-code/summary/SKILL.md +10 -0
- package/skills/sdlc/onboard-code/summary/step.md +4 -0
- package/skills/sdlc/onboard-code/verify-index/SKILL.md +10 -0
- package/skills/sdlc/onboard-code/verify-index/step.md +9 -0
- package/skills/sdlc/onboard-docs/extract-terms/SKILL.md +10 -0
- package/skills/sdlc/onboard-docs/extract-terms/step.md +20 -0
- package/skills/sdlc/onboard-docs/graphify-build/SKILL.md +10 -0
- package/skills/sdlc/onboard-docs/graphify-build/step.md +11 -0
- package/skills/sdlc/onboard-docs/scan-import/SKILL.md +10 -0
- package/skills/sdlc/onboard-docs/scan-import/step.md +19 -0
- package/skills/sdlc/onboard-docs/verify-fix/SKILL.md +10 -0
- package/skills/sdlc/onboard-docs/verify-fix/step.md +10 -0
- package/skills/sdlc/pack.yaml +9 -2
- package/workflows/sdlc/onboard-code.yaml +5 -43
- package/workflows/sdlc/onboard-docs.yaml +4 -64
- package/skills/sdlc/onboard-code/SKILL.md +0 -210
- package/skills/sdlc/onboard-docs/SKILL.md +0 -194
- /package/skills/sdlc/onboard-docs/{convert.py → scan-import/convert.py} +0 -0
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ export interface RunGraphNode {
|
|
|
11
11
|
}
|
|
12
12
|
/** Parse a run's persisted (already-expanded) workflow YAML into a flat node
|
|
13
13
|
* graph for the DAG view. Returns undefined when absent or unparseable. */
|
|
14
|
-
export declare function buildRunGraph(workflowYaml: string | undefined): {
|
|
14
|
+
export declare function buildRunGraph(workflowYaml: string | undefined, projectPath?: string): {
|
|
15
15
|
nodes: RunGraphNode[];
|
|
16
16
|
} | undefined;
|
|
17
17
|
export declare function runRoutes(app: FastifyInstance, opts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAI/D,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,WAAW,CAAC;AAKvE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AAI/D,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,WAAW,CAAC;AAKvE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuBD;4EAC4E;AAC5E,wBAAgB,aAAa,CAC3B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,SAAS,CAqBvC;AAED,wBAAsB,SAAS,CAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE;IAAE,cAAc,EAAE,qBAAqB,CAAA;CAAE,GAC9C,OAAO,CAAC,IAAI,CAAC,CAyOf"}
|
|
@@ -59,23 +59,45 @@ const path_1 = require("path");
|
|
|
59
59
|
const core_1 = require("@vsaf/core");
|
|
60
60
|
const project_registry_js_1 = require("../services/project-registry.js");
|
|
61
61
|
const OUTPUT_LIMIT = 200 * 1024;
|
|
62
|
+
/** Resolve a node's displayable content. `command` nodes store only the
|
|
63
|
+
* command name (e.g. "sdlc-onboard-code-detect-structure") — resolve it to
|
|
64
|
+
* the underlying skill body so the run-view inspector shows what the node
|
|
65
|
+
* actually runs. Falls back to the raw command name when it can't be
|
|
66
|
+
* resolved (e.g. not deployed under this project's .vsaf/commands) — must
|
|
67
|
+
* never throw. prompt/bash nodes are already inline and pass through as-is. */
|
|
68
|
+
function resolveNodeContent(node, projectPath) {
|
|
69
|
+
if (!node.content)
|
|
70
|
+
return undefined;
|
|
71
|
+
if (node.type === 'command' && projectPath) {
|
|
72
|
+
try {
|
|
73
|
+
return (0, core_1.loadCommand)(node.content, projectPath).body;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return node.content;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return node.content;
|
|
80
|
+
}
|
|
62
81
|
/** Parse a run's persisted (already-expanded) workflow YAML into a flat node
|
|
63
82
|
* graph for the DAG view. Returns undefined when absent or unparseable. */
|
|
64
|
-
function buildRunGraph(workflowYaml) {
|
|
83
|
+
function buildRunGraph(workflowYaml, projectPath) {
|
|
65
84
|
if (!workflowYaml)
|
|
66
85
|
return undefined;
|
|
67
86
|
try {
|
|
68
87
|
const graph = (0, core_1.parseWorkflow)(workflowYaml);
|
|
69
88
|
return {
|
|
70
|
-
nodes: [...graph.nodes.values()].map((n) =>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
89
|
+
nodes: [...graph.nodes.values()].map((n) => {
|
|
90
|
+
const resolved = resolveNodeContent(n, projectPath);
|
|
91
|
+
return {
|
|
92
|
+
id: n.id,
|
|
93
|
+
dependsOn: n.dependsOn ?? [],
|
|
94
|
+
type: n.type,
|
|
95
|
+
provider: n.provider,
|
|
96
|
+
model: n.model,
|
|
97
|
+
description: n.description || undefined,
|
|
98
|
+
content: resolved ? (resolved.length > 600 ? resolved.slice(0, 600) + '…' : resolved) : undefined,
|
|
99
|
+
};
|
|
100
|
+
}),
|
|
79
101
|
};
|
|
80
102
|
}
|
|
81
103
|
catch {
|
|
@@ -123,7 +145,7 @@ async function runRoutes(app, opts) {
|
|
|
123
145
|
conversationId = undefined;
|
|
124
146
|
}
|
|
125
147
|
}
|
|
126
|
-
return { ...run, graph: buildRunGraph(run.workflowYaml), conversationId };
|
|
148
|
+
return { ...run, graph: buildRunGraph(run.workflowYaml, context.project.path), conversationId };
|
|
127
149
|
});
|
|
128
150
|
app.get('/runs/:runId/nodes/:nodeId/output', async (request, reply) => {
|
|
129
151
|
const store = storeFor(contextFor(request));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ async function workflowRoutes(app, opts) {
|
|
|
78
78
|
const nodes = [...graph.nodes.values()].map(n => ({
|
|
79
79
|
id: n.id,
|
|
80
80
|
type: n.type,
|
|
81
|
-
content: n.content
|
|
81
|
+
content: n.content,
|
|
82
82
|
dependsOn: n.dependsOn,
|
|
83
83
|
when: n.when,
|
|
84
84
|
triggerRule: n.triggerRule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/server/routes/workflows.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/server/routes/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-code-cross-domain
|
|
3
|
+
description: "Code 5/6 — cross-domain verify (GitNexus code ↔ docs graph.json) + technical terms"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Code 5/6 — cross-domain verify (GitNexus code ↔ docs graph.json) + technical terms
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Print `[ONBOARD-CODE] [5/6] Cross-domain verify... ⏳/✅`.
|
|
2
|
+
|
|
3
|
+
Read `graphify-out/graph.json` (the docs graph from onboard-docs — READ ONLY) and query the code via GitNexus (`query`, `context`). Cross-reference:
|
|
4
|
+
- business concept (graph.json) → is there a matching code module? YES → record `{concept} ↔ {module/class}`; NO → "{concept} not yet implemented".
|
|
5
|
+
- code module (GitNexus) → matching business concept? YES → mapping; NO → technical module (infra/utils), record as such.
|
|
6
|
+
Update `CONTEXT.md` IDEMPOTENTLY — never overwrite the whole file, and never blind-append (re-runs would bloat it). Manage BY SECTION:
|
|
7
|
+
- PRESERVE the `## Shared Language` section written by onboard-docs — do NOT delete or rewrite it.
|
|
8
|
+
- You OWN `## Cross-Domain Verification` (the concept↔module mappings above) and `## Technical Terms`
|
|
9
|
+
(table: | Term | Definition | Maps to Business Concept |). If a section already exists, REPLACE its body in place; otherwise append it.
|
|
10
|
+
- Keep ONE row per mapping/term (dedupe by key) — update rather than duplicate.
|
|
11
|
+
Flag any cross-database access. If `graphify-out/graph.json` is absent, note that onboard-docs must run first.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-code-detect-structure
|
|
3
|
+
description: "Code 1/6 — detect project structure (single / multi-repo / non-git)"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Code 1/6 — detect project structure (single / multi-repo / non-git)
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
You are a Senior DevOps + Code Architect onboarding a codebase. Project path: $ARGUMENTS (or current dir).
|
|
2
|
+
Print `[ONBOARD-CODE] [1/6] Detect project structure... ⏳/✅`.
|
|
3
|
+
|
|
4
|
+
Determine structure: root `.git`? → single repo. No root `.git` → scan 1–2 levels for `.git/`:
|
|
5
|
+
found N → multi-repo/microservice (list {path, remote, branch}); none → non-git project.
|
|
6
|
+
Record the result under `## Project Structure` in `.vsaf/docs/onboarding/env-setup.md`.
|
|
7
|
+
Artifact boundary: write only at project root or under root `.vsaf/`. ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Print `[ONBOARD-CODE] [4/6] Environment check + Docker setup... ⏳/✅`.
|
|
2
|
+
|
|
3
|
+
Detect the tech stack (read package.json, pom.xml, build.gradle, requirements.txt, Dockerfile, docker-compose.yml).
|
|
4
|
+
Check the current env (`java -version`, `node -v`, `docker -v`, `python3 --version`, …); compare required vs present
|
|
5
|
+
and suggest installs. Docker: if no Dockerfile/docker-compose.yml, suggest creating them (app + DB/cache/broker as needed);
|
|
6
|
+
if present, sanity-check the config. Record everything under `.vsaf/docs/onboarding/env-setup.md`
|
|
7
|
+
(this is the only md file this phase creates — no project-overview/codebase-map).
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
Print `[ONBOARD-CODE] [6/6] Create summary report... ⏳/✅` then the report table:
|
|
2
|
+
Project structure / GitNexus index (N repos) / Index verification / Tech stack / Environment (ready or missing) /
|
|
3
|
+
Docker (exists or suggested) / Cross-domain mapping (N mapped, M gaps) / CONTEXT.md updated.
|
|
4
|
+
End with: "Artifacts saved. If interrupted, re-run the next phase — data is safe."
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-code-verify-index
|
|
3
|
+
description: "Code 3/6 — map + verify the GitNexus index via MCP (do NOT trust blindly)"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Code 3/6 — map + verify the GitNexus index via MCP (do NOT trust blindly)
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Print `[ONBOARD-CODE] [3/6] Verify GitNexus index... ⏳/✅`.
|
|
2
|
+
|
|
3
|
+
Claude MUST review the index — do not assume it is correct. Using the GitNexus MCP tools:
|
|
4
|
+
- `group_sync` if the index needs (re)syncing; `list_repos` — confirm the project root is indexed (one unified index).
|
|
5
|
+
- `route_map` — confirm API routes from ALL repos are mapped; `tool_map` + `context` on 3–5 key entry points per repo.
|
|
6
|
+
Check: main entry points indexed? inter-module dependencies correct? for multi-repo, cross-service calls
|
|
7
|
+
(HTTP/gRPC/event) captured? If something is missing, re-run `group_sync` or record
|
|
8
|
+
"{module/route} not indexed — needs manual review" in `.vsaf/docs/onboarding/env-setup.md`.
|
|
9
|
+
⛔ Only GitNexus writes `.gitnexus/`; do not edit it directly.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-docs-extract-terms
|
|
3
|
+
description: "Docs 4/4 — extract domain terms from the graph into CONTEXT.md (Shared Language)"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Docs 4/4 — extract domain terms from the graph into CONTEXT.md (Shared Language)
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Print progress `[ONBOARD-DOCS] [4/4] Extract domain terms → CONTEXT.md... ⏳/✅`.
|
|
2
|
+
|
|
3
|
+
From the completed `graph.json`, extract DOMAIN terms (business vocabulary, not technical/code terms —
|
|
4
|
+
those are added later by onboard-code).
|
|
5
|
+
|
|
6
|
+
Update `CONTEXT.md` at the project root IDEMPOTENTLY — never overwrite the whole file, and never blind-append
|
|
7
|
+
(re-running onboarding would bloat it). Manage the file BY SECTION:
|
|
8
|
+
- Ensure a single top `# Project Context: {project-name}` heading (create once if missing).
|
|
9
|
+
- You OWN the `## Shared Language` section: if it already exists, REPLACE its body in place; otherwise append it.
|
|
10
|
+
Leave every other section (e.g. `## Technical Terms`, `## Cross-Domain Verification`) untouched.
|
|
11
|
+
- Keep ONE row per Term (dedupe by term name) — update an existing term's row instead of adding a duplicate.
|
|
12
|
+
|
|
13
|
+
## Shared Language
|
|
14
|
+
|
|
15
|
+
| Term | Definition | Example |
|
|
16
|
+
|------|-----------|---------|
|
|
17
|
+
| {term} | {1-line definition} | {concrete example} |
|
|
18
|
+
|
|
19
|
+
The graph is the single source of truth — do NOT create redundant overview/summary md files.
|
|
20
|
+
Then print: "Artifacts saved. If interrupted, re-run the next phase — data is safe."
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-docs-graphify-build
|
|
3
|
+
description: "Docs 2/4 — graphify build over a docs-only staging dir -> graph.json"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Docs 2/4 — graphify build over a docs-only staging dir -> graph.json
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Print progress `[ONBOARD-DOCS] [2/4] Graphify build for docs... ⏳/✅`.
|
|
2
|
+
|
|
3
|
+
1. Create `.vsaf/docs/onboarding/graphify-staging/` and populate it with ALL doc inputs:
|
|
4
|
+
original text docs (.md/.txt/README), converted .md from `.vsaf/docs/onboarding/doc-imports/`,
|
|
5
|
+
and the original binaries listed in `.vsaf/docs/onboarding/graphify-direct-read.txt`.
|
|
6
|
+
This staging dir is the SINGLE input to graphify — it guarantees graphify sees docs only, never code.
|
|
7
|
+
2. Run `/graphify .vsaf/docs/onboarding/graphify-staging/`.
|
|
8
|
+
3. Output: `graphify-out/graph.json`.
|
|
9
|
+
|
|
10
|
+
⛔ CRITICAL: graphify is ONLY for docs — DO NOT run graphify on source code (code = GitNexus, in onboard-code).
|
|
11
|
+
Only graphify may write `graphify-out/`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-docs-scan-import
|
|
3
|
+
description: "Docs 1/4 — scan & import documents (markitdown conversion + tier fallbacks)"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Docs 1/4 — scan & import documents (markitdown conversion + tier fallbacks)
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
You are a Knowledge Engineer onboarding project documents. Project path: $ARGUMENTS (or current dir).
|
|
2
|
+
Print progress as `[ONBOARD-DOCS] [1/4] Scan & import documents... ⏳/✅`.
|
|
3
|
+
|
|
4
|
+
1. Scan ALL documents: README, docs/, wiki/, specs/, *.md, *.txt (+ complex binaries). List them.
|
|
5
|
+
2. Resolve markitdown python:
|
|
6
|
+
VENVS=$(pipx environment --value PIPX_LOCAL_VENVS 2>/dev/null)
|
|
7
|
+
MARKITDOWN_PYTHON="${VENVS}/markitdown/bin/python" (fallback ~/.local/pipx/venvs/markitdown/bin/python)
|
|
8
|
+
If markitdown is missing, skip conversion and route ALL complex files through fallbacks (step 4).
|
|
9
|
+
3. Classify each complex file into a tier:
|
|
10
|
+
- Tier 1 (graphify-native): PDF, DOCX, XLSX, PNG, JPG, GIF, WEBP
|
|
11
|
+
- Tier 2 (graphify-blind): HTML, PPTX, EPUB, ZIP
|
|
12
|
+
- .md/.txt are NOT complex (read directly).
|
|
13
|
+
4. For each complex file: attempt `"$MARKITDOWN_PYTHON" "<this-skill-dir>/convert.py" --input {file} --output .vsaf/docs/onboarding/doc-imports/{name}.md`.
|
|
14
|
+
Verify the output has real content (not just headers, not an LLM refusal, not hallucinated). On success use it.
|
|
15
|
+
On failure/verify-fail: Tier 1 -> append original path to `.vsaf/docs/onboarding/graphify-direct-read.txt`;
|
|
16
|
+
Tier 2 HTML -> Read the file + write clean markdown to doc-imports/{name}.md; Tier 2 PPTX/EPUB/ZIP -> skip.
|
|
17
|
+
5. Print a conversion summary (markitdown OK / graphify-direct / Claude-Read / skipped counts).
|
|
18
|
+
|
|
19
|
+
Artifact boundary: write generated artifacts ONLY at project root or under root `.vsaf/`. ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc-onboard-docs-verify-fix
|
|
3
|
+
description: "Docs 3/4 — Claude verifies graph vs docs and supplements missing nodes/edges"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: "@ngocsangairvds/vsaf"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Docs 3/4 — Claude verifies graph vs docs and supplements missing nodes/edges
|
|
9
|
+
|
|
10
|
+
@include(step.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Print progress `[ONBOARD-DOCS] [3/4] Verify & fix graph... ⏳/✅`.
|
|
2
|
+
|
|
3
|
+
Do NOT trust the graph blindly. For EACH original doc:
|
|
4
|
+
1. Re-read it — extract concepts, relationships, business rules, constraints.
|
|
5
|
+
2. Read `graphify-out/graph.json` — find the corresponding nodes/edges.
|
|
6
|
+
3. Compare: concept/relationship/rule present in the doc but missing in the graph = MISSING.
|
|
7
|
+
4. Supplement any MISSING nodes/edges DIRECTLY into `graph.json` (this Phase-3 supplementation is the
|
|
8
|
+
ONLY permitted direct write to graph.json). Report per doc: "{doc}: +N nodes, +M edges".
|
|
9
|
+
|
|
10
|
+
Every missing concept/relationship MUST be supplemented, not skipped.
|
package/skills/sdlc/pack.yaml
CHANGED
|
@@ -10,8 +10,15 @@ skills:
|
|
|
10
10
|
|
|
11
11
|
# Phase 0 — Onboarding
|
|
12
12
|
- init
|
|
13
|
-
- onboard-docs
|
|
14
|
-
- onboard-
|
|
13
|
+
- onboard-docs/scan-import
|
|
14
|
+
- onboard-docs/graphify-build
|
|
15
|
+
- onboard-docs/verify-fix
|
|
16
|
+
- onboard-docs/extract-terms
|
|
17
|
+
- onboard-code/detect-structure
|
|
18
|
+
- onboard-code/verify-index
|
|
19
|
+
- onboard-code/env-docker
|
|
20
|
+
- onboard-code/cross-domain
|
|
21
|
+
- onboard-code/summary
|
|
15
22
|
|
|
16
23
|
# Phase 1-9 — Main flow
|
|
17
24
|
- write-srs
|
|
@@ -12,14 +12,7 @@ nodes:
|
|
|
12
12
|
permission_mode: bypassPermissions
|
|
13
13
|
workspace: false
|
|
14
14
|
timeout: 900000
|
|
15
|
-
|
|
16
|
-
You are a Senior DevOps + Code Architect onboarding a codebase. Project path: $ARGUMENTS (or current dir).
|
|
17
|
-
Print `[ONBOARD-CODE] [1/6] Detect project structure... ⏳/✅`.
|
|
18
|
-
|
|
19
|
-
Determine structure: root `.git`? → single repo. No root `.git` → scan 1–2 levels for `.git/`:
|
|
20
|
-
found N → multi-repo/microservice (list {path, remote, branch}); none → non-git project.
|
|
21
|
-
Record the result under `## Project Structure` in `.vsaf/docs/onboarding/env-setup.md`.
|
|
22
|
-
Artifact boundary: write only at project root or under root `.vsaf/`. ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`.
|
|
15
|
+
command: sdlc-onboard-code-detect-structure
|
|
23
16
|
|
|
24
17
|
- id: gitnexus-index
|
|
25
18
|
description: Code 2/6 — build the GitNexus code index (single unified index at project root)
|
|
@@ -47,16 +40,7 @@ nodes:
|
|
|
47
40
|
timeout: 1800000
|
|
48
41
|
depends_on:
|
|
49
42
|
- gitnexus-index
|
|
50
|
-
|
|
51
|
-
Print `[ONBOARD-CODE] [3/6] Verify GitNexus index... ⏳/✅`.
|
|
52
|
-
|
|
53
|
-
Claude MUST review the index — do not assume it is correct. Using the GitNexus MCP tools:
|
|
54
|
-
- `group_sync` if the index needs (re)syncing; `list_repos` — confirm the project root is indexed (one unified index).
|
|
55
|
-
- `route_map` — confirm API routes from ALL repos are mapped; `tool_map` + `context` on 3–5 key entry points per repo.
|
|
56
|
-
Check: main entry points indexed? inter-module dependencies correct? for multi-repo, cross-service calls
|
|
57
|
-
(HTTP/gRPC/event) captured? If something is missing, re-run `group_sync` or record
|
|
58
|
-
"{module/route} not indexed — needs manual review" in `.vsaf/docs/onboarding/env-setup.md`.
|
|
59
|
-
⛔ Only GitNexus writes `.gitnexus/`; do not edit it directly.
|
|
43
|
+
command: sdlc-onboard-code-verify-index
|
|
60
44
|
|
|
61
45
|
- id: env-docker
|
|
62
46
|
description: Code 4/6 — environment check + Docker setup suggestion
|
|
@@ -65,14 +49,7 @@ nodes:
|
|
|
65
49
|
timeout: 1800000
|
|
66
50
|
depends_on:
|
|
67
51
|
- verify-index
|
|
68
|
-
|
|
69
|
-
Print `[ONBOARD-CODE] [4/6] Environment check + Docker setup... ⏳/✅`.
|
|
70
|
-
|
|
71
|
-
Detect the tech stack (read package.json, pom.xml, build.gradle, requirements.txt, Dockerfile, docker-compose.yml).
|
|
72
|
-
Check the current env (`java -version`, `node -v`, `docker -v`, `python3 --version`, …); compare required vs present
|
|
73
|
-
and suggest installs. Docker: if no Dockerfile/docker-compose.yml, suggest creating them (app + DB/cache/broker as needed);
|
|
74
|
-
if present, sanity-check the config. Record everything under `.vsaf/docs/onboarding/env-setup.md`
|
|
75
|
-
(this is the only md file this phase creates — no project-overview/codebase-map).
|
|
52
|
+
command: sdlc-onboard-code-env-docker
|
|
76
53
|
|
|
77
54
|
- id: cross-domain
|
|
78
55
|
description: Code 5/6 — cross-domain verify (GitNexus code ↔ docs graph.json) + technical terms
|
|
@@ -81,18 +58,7 @@ nodes:
|
|
|
81
58
|
timeout: 1800000
|
|
82
59
|
depends_on:
|
|
83
60
|
- env-docker
|
|
84
|
-
|
|
85
|
-
Print `[ONBOARD-CODE] [5/6] Cross-domain verify... ⏳/✅`.
|
|
86
|
-
|
|
87
|
-
Read `graphify-out/graph.json` (the docs graph from onboard-docs — READ ONLY) and query the code via GitNexus (`query`, `context`). Cross-reference:
|
|
88
|
-
- business concept (graph.json) → is there a matching code module? YES → record `{concept} ↔ {module/class}`; NO → "{concept} not yet implemented".
|
|
89
|
-
- code module (GitNexus) → matching business concept? YES → mapping; NO → technical module (infra/utils), record as such.
|
|
90
|
-
Update `CONTEXT.md` IDEMPOTENTLY — never overwrite the whole file, and never blind-append (re-runs would bloat it). Manage BY SECTION:
|
|
91
|
-
- PRESERVE the `## Shared Language` section written by onboard-docs — do NOT delete or rewrite it.
|
|
92
|
-
- You OWN `## Cross-Domain Verification` (the concept↔module mappings above) and `## Technical Terms`
|
|
93
|
-
(table: | Term | Definition | Maps to Business Concept |). If a section already exists, REPLACE its body in place; otherwise append it.
|
|
94
|
-
- Keep ONE row per mapping/term (dedupe by key) — update rather than duplicate.
|
|
95
|
-
Flag any cross-database access. If `graphify-out/graph.json` is absent, note that onboard-docs must run first.
|
|
61
|
+
command: sdlc-onboard-code-cross-domain
|
|
96
62
|
|
|
97
63
|
- id: summary
|
|
98
64
|
description: Code 6/6 — onboarding summary report
|
|
@@ -101,8 +67,4 @@ nodes:
|
|
|
101
67
|
timeout: 600000
|
|
102
68
|
depends_on:
|
|
103
69
|
- cross-domain
|
|
104
|
-
|
|
105
|
-
Print `[ONBOARD-CODE] [6/6] Create summary report... ⏳/✅` then the report table:
|
|
106
|
-
Project structure / GitNexus index (N repos) / Index verification / Tech stack / Environment (ready or missing) /
|
|
107
|
-
Docker (exists or suggested) / Cross-domain mapping (N mapped, M gaps) / CONTEXT.md updated.
|
|
108
|
-
End with: "Artifacts saved. If interrupted, re-run the next phase — data is safe."
|
|
70
|
+
command: sdlc-onboard-code-summary
|
|
@@ -11,26 +11,7 @@ nodes:
|
|
|
11
11
|
permission_mode: bypassPermissions
|
|
12
12
|
workspace: false
|
|
13
13
|
timeout: 1800000
|
|
14
|
-
|
|
15
|
-
You are a Knowledge Engineer onboarding project documents. Project path: $ARGUMENTS (or current dir).
|
|
16
|
-
Print progress as `[ONBOARD-DOCS] [1/4] Scan & import documents... ⏳/✅`.
|
|
17
|
-
|
|
18
|
-
1. Scan ALL documents: README, docs/, wiki/, specs/, *.md, *.txt (+ complex binaries). List them.
|
|
19
|
-
2. Resolve markitdown python:
|
|
20
|
-
VENVS=$(pipx environment --value PIPX_LOCAL_VENVS 2>/dev/null)
|
|
21
|
-
MARKITDOWN_PYTHON="${VENVS}/markitdown/bin/python" (fallback ~/.local/pipx/venvs/markitdown/bin/python)
|
|
22
|
-
If markitdown is missing, skip conversion and route ALL complex files through fallbacks (step 4).
|
|
23
|
-
3. Classify each complex file into a tier:
|
|
24
|
-
- Tier 1 (graphify-native): PDF, DOCX, XLSX, PNG, JPG, GIF, WEBP
|
|
25
|
-
- Tier 2 (graphify-blind): HTML, PPTX, EPUB, ZIP
|
|
26
|
-
- .md/.txt are NOT complex (read directly).
|
|
27
|
-
4. For each complex file: attempt `"$MARKITDOWN_PYTHON" "<this-skill-dir>/convert.py" --input {file} --output .vsaf/docs/onboarding/doc-imports/{name}.md`.
|
|
28
|
-
Verify the output has real content (not just headers, not an LLM refusal, not hallucinated). On success use it.
|
|
29
|
-
On failure/verify-fail: Tier 1 -> append original path to `.vsaf/docs/onboarding/graphify-direct-read.txt`;
|
|
30
|
-
Tier 2 HTML -> Read the file + write clean markdown to doc-imports/{name}.md; Tier 2 PPTX/EPUB/ZIP -> skip.
|
|
31
|
-
5. Print a conversion summary (markitdown OK / graphify-direct / Claude-Read / skipped counts).
|
|
32
|
-
|
|
33
|
-
Artifact boundary: write generated artifacts ONLY at project root or under root `.vsaf/`. ⛔ Do NOT modify `graphify-out/` or `.gitnexus/`.
|
|
14
|
+
command: sdlc-onboard-docs-scan-import
|
|
34
15
|
|
|
35
16
|
- id: graphify-build
|
|
36
17
|
description: Docs 2/4 — graphify build over a docs-only staging dir -> graph.json
|
|
@@ -39,18 +20,7 @@ nodes:
|
|
|
39
20
|
timeout: 3600000
|
|
40
21
|
depends_on:
|
|
41
22
|
- scan-import
|
|
42
|
-
|
|
43
|
-
Print progress `[ONBOARD-DOCS] [2/4] Graphify build for docs... ⏳/✅`.
|
|
44
|
-
|
|
45
|
-
1. Create `.vsaf/docs/onboarding/graphify-staging/` and populate it with ALL doc inputs:
|
|
46
|
-
original text docs (.md/.txt/README), converted .md from `.vsaf/docs/onboarding/doc-imports/`,
|
|
47
|
-
and the original binaries listed in `.vsaf/docs/onboarding/graphify-direct-read.txt`.
|
|
48
|
-
This staging dir is the SINGLE input to graphify — it guarantees graphify sees docs only, never code.
|
|
49
|
-
2. Run `/graphify .vsaf/docs/onboarding/graphify-staging/`.
|
|
50
|
-
3. Output: `graphify-out/graph.json`.
|
|
51
|
-
|
|
52
|
-
⛔ CRITICAL: graphify is ONLY for docs — DO NOT run graphify on source code (code = GitNexus, in onboard-code).
|
|
53
|
-
Only graphify may write `graphify-out/`.
|
|
23
|
+
command: sdlc-onboard-docs-graphify-build
|
|
54
24
|
|
|
55
25
|
- id: verify-fix
|
|
56
26
|
description: Docs 3/4 — Claude verifies graph vs docs and supplements missing nodes/edges
|
|
@@ -59,17 +29,7 @@ nodes:
|
|
|
59
29
|
timeout: 3600000
|
|
60
30
|
depends_on:
|
|
61
31
|
- graphify-build
|
|
62
|
-
|
|
63
|
-
Print progress `[ONBOARD-DOCS] [3/4] Verify & fix graph... ⏳/✅`.
|
|
64
|
-
|
|
65
|
-
Do NOT trust the graph blindly. For EACH original doc:
|
|
66
|
-
1. Re-read it — extract concepts, relationships, business rules, constraints.
|
|
67
|
-
2. Read `graphify-out/graph.json` — find the corresponding nodes/edges.
|
|
68
|
-
3. Compare: concept/relationship/rule present in the doc but missing in the graph = MISSING.
|
|
69
|
-
4. Supplement any MISSING nodes/edges DIRECTLY into `graph.json` (this Phase-3 supplementation is the
|
|
70
|
-
ONLY permitted direct write to graph.json). Report per doc: "{doc}: +N nodes, +M edges".
|
|
71
|
-
|
|
72
|
-
Every missing concept/relationship MUST be supplemented, not skipped.
|
|
32
|
+
command: sdlc-onboard-docs-verify-fix
|
|
73
33
|
|
|
74
34
|
- id: extract-terms
|
|
75
35
|
description: Docs 4/4 — extract domain terms from the graph into CONTEXT.md (Shared Language)
|
|
@@ -79,24 +39,4 @@ nodes:
|
|
|
79
39
|
timeout: 900000
|
|
80
40
|
depends_on:
|
|
81
41
|
- verify-fix
|
|
82
|
-
|
|
83
|
-
Print progress `[ONBOARD-DOCS] [4/4] Extract domain terms → CONTEXT.md... ⏳/✅`.
|
|
84
|
-
|
|
85
|
-
From the completed `graph.json`, extract DOMAIN terms (business vocabulary, not technical/code terms —
|
|
86
|
-
those are added later by onboard-code).
|
|
87
|
-
|
|
88
|
-
Update `CONTEXT.md` at the project root IDEMPOTENTLY — never overwrite the whole file, and never blind-append
|
|
89
|
-
(re-running onboarding would bloat it). Manage the file BY SECTION:
|
|
90
|
-
- Ensure a single top `# Project Context: {project-name}` heading (create once if missing).
|
|
91
|
-
- You OWN the `## Shared Language` section: if it already exists, REPLACE its body in place; otherwise append it.
|
|
92
|
-
Leave every other section (e.g. `## Technical Terms`, `## Cross-Domain Verification`) untouched.
|
|
93
|
-
- Keep ONE row per Term (dedupe by term name) — update an existing term's row instead of adding a duplicate.
|
|
94
|
-
|
|
95
|
-
## Shared Language
|
|
96
|
-
|
|
97
|
-
| Term | Definition | Example |
|
|
98
|
-
|------|-----------|---------|
|
|
99
|
-
| {term} | {1-line definition} | {concrete example} |
|
|
100
|
-
|
|
101
|
-
The graph is the single source of truth — do NOT create redundant overview/summary md files.
|
|
102
|
-
Then print: "Artifacts saved. If interrupted, re-run the next phase — data is safe."
|
|
42
|
+
command: sdlc-onboard-docs-extract-terms
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sdlc-onboard-code
|
|
3
|
-
description: Code onboarding — GitNexus index + Claude verify index + env check + Docker + cross-domain verify
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
author: "@ngocsangairvds/vsaf"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Onboard Code — GitNexus Index + Verify + Environment Setup
|
|
9
|
-
|
|
10
|
-
You are a Senior DevOps Engineer + Code Architect. Mission: ensure GitNexus index captures ACCURATELY the entire code structure, verify cross-domain with docs graph, AND prepare the development environment.
|
|
11
|
-
|
|
12
|
-
## Progress Protocol
|
|
13
|
-
|
|
14
|
-
Each step prints progress:
|
|
15
|
-
```
|
|
16
|
-
[ONBOARD-CODE] [1/6] description... (icon)
|
|
17
|
-
```
|
|
18
|
-
Icon: `⏳` running, `✅` done, `❌` error.
|
|
19
|
-
|
|
20
|
-
## Index Protection
|
|
21
|
-
|
|
22
|
-
> ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` — only GitNexus tools are allowed to write to `.gitnexus/`.
|
|
23
|
-
|
|
24
|
-
## Artifact Write Boundary
|
|
25
|
-
|
|
26
|
-
- Create generated knowledge, documentation, SDLC artifacts, reports, and agent-readable markdown only at the project root beside `.vsaf` or inside the root `.vsaf/` directory.
|
|
27
|
-
- Do NOT create `docs/`, `.vsaf/`, `CONTEXT.md`, `AGENTS.md`, knowledge files, reports, or generated artifacts inside service/subproject folders.
|
|
28
|
-
- For service-specific notes, write under root `.vsaf/docs/` using the service name in the path or filename.
|
|
29
|
-
- Write inside a service/subproject folder only when the user explicitly authorizes that path, or when the task is a source-code/test change for that service.
|
|
30
|
-
|
|
31
|
-
## Clear Responsibility Assignment
|
|
32
|
-
|
|
33
|
-
| Tool | Scope | Notes |
|
|
34
|
-
|------|-------|-------|
|
|
35
|
-
| **GitNexus** | Code indexing (modules, routes, APIs, dependencies) | SINGLE SOURCE OF TRUTH for code |
|
|
36
|
-
| **Graphify** | Docs indexing (specs, README, wiki) | DO NOT use for code |
|
|
37
|
-
| **graph.json** | Doc-only graph — used for cross-domain verify | Read only, DO NOT write |
|
|
38
|
-
|
|
39
|
-
## Input
|
|
40
|
-
|
|
41
|
-
- Project path: `$ARGUMENTS` (or current directory)
|
|
42
|
-
|
|
43
|
-
## Steps
|
|
44
|
-
|
|
45
|
-
### Phase 1: Detect Project Structure
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
[ONBOARD-CODE] [1/6] Detect project structure... ⏳
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
1. Scan project structure:
|
|
52
|
-
```
|
|
53
|
-
Is there .git at root?
|
|
54
|
-
├── YES → Single git repo
|
|
55
|
-
└── NO → Scan 1-2 levels deep for .git/
|
|
56
|
-
├── Found N folders with .git → Multi-repo / Microservice
|
|
57
|
-
│ List: [{path, remote, branch}]
|
|
58
|
-
└── Not found → Non-git project
|
|
59
|
-
```
|
|
60
|
-
2. Record results in `.vsaf/docs/onboarding/env-setup.md` §Project Structure
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
[ONBOARD-CODE] [1/6] Detect project structure... ✅
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Phase 2: GitNexus Index
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
[ONBOARD-CODE] [2/6] GitNexus index... ⏳
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
3. Run GitNexus analyze at **project root** (NOT per sub-repo):
|
|
73
|
-
```
|
|
74
|
-
Is there .git at project root?
|
|
75
|
-
├── YES → npx gitnexus analyze .
|
|
76
|
-
└── NO → npx gitnexus analyze . --skip-git
|
|
77
|
-
```
|
|
78
|
-
- ⚠️ Use `npx gitnexus` (resolves local binary) — do NOT use `npx -y gitnexus@latest` (native module crash on Node 24+)
|
|
79
|
-
- This creates a SINGLE `.gitnexus/` at project root covering ALL code (including sub-repos)
|
|
80
|
-
- For multi-repo: one unified index enables cross-service analysis naturally
|
|
81
|
-
- Run GitNexus `group_sync` to index
|
|
82
|
-
4. Map structure: `route_map` + `tool_map` + `context` (3-5 key entry points per repo)
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
[ONBOARD-CODE] [2/6] GitNexus index... ✅
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Phase 3: Verify GitNexus Index
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
[ONBOARD-CODE] [3/6] Verify GitNexus index... ⏳
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**IMPORTANT:** Claude MUST review GitNexus index — DO NOT trust blindly. Verify using MCP tools:
|
|
95
|
-
|
|
96
|
-
5. `list_repos` — confirm project root has been indexed (single unified index)
|
|
97
|
-
6. `route_map` — check that API routes from ALL repos have been fully mapped
|
|
98
|
-
7. `context` — query 3-5 key entry points per repo, verify results make sense:
|
|
99
|
-
- Are main entry points indexed for each repo?
|
|
100
|
-
- Are dependencies between modules correct?
|
|
101
|
-
- If multi-repo: are cross-service calls captured? (HTTP, gRPC, event-driven)
|
|
102
|
-
8. If missing:
|
|
103
|
-
- Re-run `group_sync` with different config
|
|
104
|
-
- Or record note in env-setup.md: "{module/route} not indexed — needs manual review"
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
[ONBOARD-CODE] [3/6] Verify GitNexus index... ✅
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Phase 4: Environment Check + Docker Setup
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
[ONBOARD-CODE] [4/6] Environment check + Docker setup... ⏳
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
9. Detect tech stack: read `package.json`, `pom.xml`, `build.gradle`, `requirements.txt`, `Dockerfile`, `docker-compose.yml`
|
|
117
|
-
10. Check current env: `java -version`, `node -v`, `docker -v`, `python3 --version`, etc.
|
|
118
|
-
11. Compare required vs current → suggest installations
|
|
119
|
-
12. **Docker env suggestion:**
|
|
120
|
-
- If project DOES NOT have `Dockerfile` or `docker-compose.yml`:
|
|
121
|
-
- Suggest creating `docker-compose.yml` with appropriate services (DB, cache, message broker)
|
|
122
|
-
- Suggest creating `Dockerfile` for the app
|
|
123
|
-
- If project ALREADY HAS Docker files: verify config is reasonable
|
|
124
|
-
13. Record everything in `.vsaf/docs/onboarding/env-setup.md`
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
[ONBOARD-CODE] [4/6] Environment check + Docker setup... ✅
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Phase 5: Cross-Domain Verify
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
[ONBOARD-CODE] [5/6] Cross-domain verify (GitNexus + graph.json)... ⏳
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
14. Read `graphify-out/graph.json` (docs graph from onboard-docs)
|
|
137
|
-
15. Use GitNexus tools (`query`, `context`) to get code structure
|
|
138
|
-
16. Cross-reference:
|
|
139
|
-
- Business concept (from graph.json) → is there a corresponding code module? (query GitNexus)
|
|
140
|
-
- YES → record mapping: `{concept} ↔ {module/class}`
|
|
141
|
-
- NO → record note: "{concept} not yet implemented"
|
|
142
|
-
- Code module (from GitNexus) → is there a corresponding business concept? (check graph.json)
|
|
143
|
-
- YES → record mapping
|
|
144
|
-
- NO → technical module (infra, utils) — OK, record note
|
|
145
|
-
17. Update `CONTEXT.md` with technical terms from code — IDEMPOTENTLY (never overwrite the whole file, never
|
|
146
|
-
blind-append; re-runs must not bloat it): PRESERVE the `## Shared Language` section written by onboard-docs;
|
|
147
|
-
own `## Cross-Domain Verification` + `## Technical Terms` — if a section exists REPLACE its body in place,
|
|
148
|
-
else append it; one row per mapping/term (dedupe, update rather than duplicate):
|
|
149
|
-
|
|
150
|
-
```markdown
|
|
151
|
-
## Technical Terms
|
|
152
|
-
|
|
153
|
-
| Term | Definition | Maps to Business Concept |
|
|
154
|
-
|------|-----------|-------------------------|
|
|
155
|
-
| {class/module} | {functionality} | {business concept or "infrastructure"} |
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
[ONBOARD-CODE] [5/6] Cross-domain verify (GitNexus + graph.json)... ✅
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Phase 6: Summary Report
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
[ONBOARD-CODE] [6/6] Create summary report... ⏳
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Print ONBOARD-CODE REPORT:
|
|
169
|
-
|
|
170
|
-
```
|
|
171
|
-
=== Onboard Code Report ===
|
|
172
|
-
|
|
173
|
-
| Item | Status |
|
|
174
|
-
|------|--------|
|
|
175
|
-
| Project structure | {Single repo / Multi-repo (N repos)} |
|
|
176
|
-
| GitNexus index | ✅ {N} repos indexed |
|
|
177
|
-
| Index verification | ✅ Verified / ⚠️ {issues} |
|
|
178
|
-
| Tech stack | {Java/Angular/Node/...} |
|
|
179
|
-
| Environment | ✅ Ready / ⚠️ Missing: {list} |
|
|
180
|
-
| Docker | ✅ Exists / 💡 Suggested |
|
|
181
|
-
| Cross-domain mapping | ✅ {N} concepts mapped / ⚠️ {M} gaps |
|
|
182
|
-
| CONTEXT.md | ✅ Updated |
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
[ONBOARD-CODE] [6/6] Create summary report... ✅
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Output
|
|
190
|
-
|
|
191
|
-
- `.vsaf/docs/onboarding/env-setup.md` — project structure + tech stack + env check + Docker
|
|
192
|
-
- `CONTEXT.md` — updated with technical terms
|
|
193
|
-
- Single GitNexus index at project root (`.gitnexus/`) covering all code
|
|
194
|
-
|
|
195
|
-
## Artifact Auto-Save
|
|
196
|
-
|
|
197
|
-
After completion, print message:
|
|
198
|
-
|
|
199
|
-
> Artifacts saved. If the session is interrupted, open a new session and run the next phase — data is safe.
|
|
200
|
-
|
|
201
|
-
## Rules
|
|
202
|
-
|
|
203
|
-
- GitNexus is the SINGLE SOURCE OF TRUTH for code — DO NOT use graphify for code
|
|
204
|
-
- Graphify is only for docs — graph.json is READ-ONLY (no writing) in this phase
|
|
205
|
-
- Multi-repo/Microservice: MUST verify cross-service edges (HTTP, gRPC, event-driven, message broker) via GitNexus
|
|
206
|
-
- Database isolation: flag if cross-db access is detected
|
|
207
|
-
- env-setup.md is the ONLY md file to be created (needed for Docker setup)
|
|
208
|
-
- Do not create project-overview.md or codebase-map.md
|
|
209
|
-
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
|
|
210
|
-
- Claude MUST verify GitNexus index — do not assume index is correct without checking
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sdlc-onboard-docs
|
|
3
|
-
description: Document onboarding — Graphify build graph + Claude verify + supplement gaps
|
|
4
|
-
version: 1.0.1
|
|
5
|
-
author: "@ngocsangairvds/vsaf"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Onboard Docs — Build & Verify Document Knowledge Graph
|
|
9
|
-
|
|
10
|
-
You are a Knowledge Engineer. Mission: ensure graph.json captures ACCURATELY all knowledge from project documents.
|
|
11
|
-
|
|
12
|
-
## Progress Protocol
|
|
13
|
-
|
|
14
|
-
Each step prints progress:
|
|
15
|
-
```
|
|
16
|
-
[ONBOARD-DOCS] [1/4] description... (icon)
|
|
17
|
-
```
|
|
18
|
-
Icon: `⏳` running, `✅` done, `❌` error.
|
|
19
|
-
|
|
20
|
-
## Index Protection
|
|
21
|
-
|
|
22
|
-
> ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` DIRECTLY — only graphify is allowed to write to `graphify-out/`.
|
|
23
|
-
> **Exception:** Phase 3 supplements nodes/edges directly into `graph.json` after graphify has built it — this is the only permitted direct modification.
|
|
24
|
-
|
|
25
|
-
## Artifact Write Boundary
|
|
26
|
-
|
|
27
|
-
- Create generated knowledge, documentation, SDLC artifacts, reports, and agent-readable markdown only at the project root beside `.vsaf` or inside the root `.vsaf/` directory.
|
|
28
|
-
- Do NOT create `docs/`, `.vsaf/`, `CONTEXT.md`, `AGENTS.md`, knowledge files, reports, or generated artifacts inside service/subproject folders.
|
|
29
|
-
- For service-specific notes, write under root `.vsaf/docs/` using the service name in the path or filename.
|
|
30
|
-
- Write inside a service/subproject folder only when the user explicitly authorizes that path, or when the task is a source-code/test change for that service.
|
|
31
|
-
|
|
32
|
-
## Input
|
|
33
|
-
|
|
34
|
-
- Project path: `$ARGUMENTS` (or current directory)
|
|
35
|
-
- Read all docs in project: README, docs/, wiki/, specs/, *.md, *.txt
|
|
36
|
-
|
|
37
|
-
## Steps
|
|
38
|
-
|
|
39
|
-
### Phase 1: Scan & Import
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
[ONBOARD-DOCS] [1/4] Scan & import documents... ⏳
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
1. Scan all documents in project (README, docs/, wiki, specs)
|
|
46
|
-
2. List all docs found
|
|
47
|
-
3. Resolve markitdown Python — run:
|
|
48
|
-
```bash
|
|
49
|
-
VENVS=$(pipx environment --value PIPX_LOCAL_VENVS 2>/dev/null)
|
|
50
|
-
MARKITDOWN_PYTHON="${VENVS}/markitdown/bin/python"
|
|
51
|
-
# Windows: "${VENVS}\markitdown\Scripts\python.exe"
|
|
52
|
-
# Fallback: ~/.local/pipx/venvs/markitdown/bin/python
|
|
53
|
-
```
|
|
54
|
-
If markitdown Python not found, skip step 5 entirely and route ALL complex files through tier fallbacks:
|
|
55
|
-
- **All Tier 1 files** → add to graphify-direct-read list (graphify reads natively)
|
|
56
|
-
- **All Tier 2 HTML files** → Claude Read fallback (step 6)
|
|
57
|
-
- **All Tier 2 PPTX/EPUB/ZIP files** → skipped (no fallback available)
|
|
58
|
-
Then jump to step 6 routing.
|
|
59
|
-
|
|
60
|
-
4. Classify each complex file into a tier:
|
|
61
|
-
- **Tier 1 (graphify-native):** PDF, DOCX, XLSX, PNG, JPG, GIF, WEBP — graphify can read these directly if markitdown fails
|
|
62
|
-
- **Tier 2 (graphify-blind):** HTML, PPTX, EPUB, ZIP — graphify cannot read these; need markitdown or Claude fallback
|
|
63
|
-
- Text files (`.md`, `.txt`) are NOT complex — read directly, skip conversion
|
|
64
|
-
|
|
65
|
-
5. For each complex file, attempt markitdown conversion (skip if markitdown not found — see step 3):
|
|
66
|
-
- Resolve markitdown Python (step 3 above)
|
|
67
|
-
- Convert using the wrapper script (bundled in this skill directory):
|
|
68
|
-
```bash
|
|
69
|
-
"${MARKITDOWN_PYTHON}" "<this-skill-dir>/convert.py" \
|
|
70
|
-
--input "{file}" \
|
|
71
|
-
--output ".vsaf/docs/onboarding/doc-imports/{name}.md"
|
|
72
|
-
```
|
|
73
|
-
- `<this-skill-dir>` = the directory containing this SKILL.md
|
|
74
|
-
- The script auto-detects OCR availability from `~/.vsaf/markitdown.env`
|
|
75
|
-
|
|
76
|
-
6. After each conversion, verify and route:
|
|
77
|
-
|
|
78
|
-
**If convert.py exit code = 0:**
|
|
79
|
-
Read the output `.md` file and verify content quality. Check ALL of:
|
|
80
|
-
- Contains meaningful content from the document? (not just auto-generated headers like `## Page 1`)
|
|
81
|
-
- Not an LLM refusal? (e.g., "I'm sorry, but I can't help with that")
|
|
82
|
-
- Not hallucinated? (e.g., fabricated tool calls, irrelevant JSON/XML, text unrelated to source file)
|
|
83
|
-
- Has substance? (more than a few words after stripping structural markers)
|
|
84
|
-
|
|
85
|
-
If ALL checks PASS → use the `.md` output. Log: `[ONBOARD-DOCS] {file} → converted ✅`
|
|
86
|
-
|
|
87
|
-
If ANY check FAILS → treat as conversion failure (continue to fallback below).
|
|
88
|
-
|
|
89
|
-
**If convert.py exit code ≠ 0, OR verification failed:**
|
|
90
|
-
|
|
91
|
-
- **Tier 1 file** → Log: `[ONBOARD-DOCS] {file}: markitdown failed → graphify will read directly`
|
|
92
|
-
Add the ORIGINAL file path to a "graphify-direct-read" list. Do NOT retry conversion.
|
|
93
|
-
After all conversions, persist the list to `.vsaf/docs/onboarding/graphify-direct-read.txt` (one path per line).
|
|
94
|
-
- **Tier 2 HTML file** → Read the HTML file with the Read tool. Extract meaningful content (headings, paragraphs, tables, lists, links). Write clean markdown to `.vsaf/docs/onboarding/doc-imports/{name}.md`. Log: `[ONBOARD-DOCS] {file} → Claude Read fallback ✅`
|
|
95
|
-
- **Tier 2 PPTX/EPUB/ZIP file** → Log: `[ONBOARD-DOCS] ⚠️ {file}: conversion failed, no fallback — skipped`
|
|
96
|
-
|
|
97
|
-
Print conversion summary:
|
|
98
|
-
```
|
|
99
|
-
[ONBOARD-DOCS] Conversion summary:
|
|
100
|
-
markitdown OK: N files
|
|
101
|
-
graphify direct: N files (Tier 1 fallback)
|
|
102
|
-
Claude Read: N files (Tier 2 HTML fallback)
|
|
103
|
-
Skipped: N files (no fallback available)
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
[ONBOARD-DOCS] [1/4] Scan & import documents... ✅
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Phase 2: Graphify Build
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
[ONBOARD-DOCS] [2/4] Graphify build for docs... ⏳
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
7. Create a staging directory at `.vsaf/docs/onboarding/graphify-staging/` and populate it with ALL inputs for graphify:
|
|
117
|
-
- Copy or symlink original text documents (`.md`, `.txt`, README)
|
|
118
|
-
- Copy or symlink successfully converted `.md` files from `.vsaf/docs/onboarding/doc-imports/`
|
|
119
|
-
- Copy or symlink files from `.vsaf/docs/onboarding/graphify-direct-read.txt` (original binary files — graphify reads these natively: PDF, DOCX, XLSX, images)
|
|
120
|
-
|
|
121
|
-
This directory is the single input to graphify — it ensures graphify only processes docs, never source code.
|
|
122
|
-
|
|
123
|
-
8. Run `/graphify .vsaf/docs/onboarding/graphify-staging/`
|
|
124
|
-
9. Output: `graphify-out/graph.json`
|
|
125
|
-
|
|
126
|
-
**IMPORTANT:** Graphify is ONLY for docs (documents, specs, README). DO NOT run graphify on source code — code indexing is handled by GitNexus in `/sdlc-onboard-code`.
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
[ONBOARD-DOCS] [2/4] Graphify build for docs... ✅
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### Phase 3: Claude Verify & Fix
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
[ONBOARD-DOCS] [3/4] Verify & fix graph... ⏳
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
10. Re-read **each original doc** — extract: concepts, relationships, business rules, constraints
|
|
139
|
-
11. Read `graph.json` — find corresponding nodes/edges
|
|
140
|
-
12. Compare:
|
|
141
|
-
- Concept in doc but no node in graph → **MISSING**
|
|
142
|
-
- Relationship in doc but no edge in graph → **MISSING**
|
|
143
|
-
- Business rule/constraint not captured → **MISSING**
|
|
144
|
-
- All present → OK
|
|
145
|
-
13. If missing: supplement nodes/edges directly into `graph.json` (this is the permitted exception to the Index Protection rule)
|
|
146
|
-
14. Report: "{doc}: +N nodes, +M edges supplemented"
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
[ONBOARD-DOCS] [3/4] Verify & fix graph... ✅
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Phase 4: Extract Domain Terms
|
|
153
|
-
|
|
154
|
-
```
|
|
155
|
-
[ONBOARD-DOCS] [4/4] Extract domain terms → CONTEXT.md... ⏳
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
15. From the completed graph, extract domain terms → `CONTEXT.md` — update IDEMPOTENTLY (never overwrite the
|
|
159
|
-
whole file, never blind-append; re-runs must not bloat it): ensure one top `# Project Context: {name}`
|
|
160
|
-
heading, then own the `## Shared Language` section — if it exists REPLACE its body in place, else append it;
|
|
161
|
-
leave other sections (`## Technical Terms`, `## Cross-Domain Verification`) untouched; one row per Term (dedupe).
|
|
162
|
-
16. Format Shared Language table:
|
|
163
|
-
|
|
164
|
-
```markdown
|
|
165
|
-
## Shared Language
|
|
166
|
-
|
|
167
|
-
| Term | Definition | Example |
|
|
168
|
-
|------|-----------|---------|
|
|
169
|
-
| {term} | {1-line definition} | {concrete example} |
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
```
|
|
173
|
-
[ONBOARD-DOCS] [4/4] Extract domain terms → CONTEXT.md... ✅
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
## Output
|
|
177
|
-
|
|
178
|
-
- `graphify-out/graph.json` — verified + supplemented
|
|
179
|
-
- `.vsaf/docs/onboarding/doc-imports/{name}.md` — converted/fallback imports (if any)
|
|
180
|
-
- `CONTEXT.md` — Ubiquitous Language
|
|
181
|
-
|
|
182
|
-
## Artifact Auto-Save
|
|
183
|
-
|
|
184
|
-
After completion, print message:
|
|
185
|
-
|
|
186
|
-
> Artifacts saved. If the session is interrupted, open a new session and run the next phase — data is safe.
|
|
187
|
-
|
|
188
|
-
## Rules
|
|
189
|
-
|
|
190
|
-
- Graph is the SINGLE SOURCE OF TRUTH — do not create redundant overview/summary md files
|
|
191
|
-
- Every missing concept/relationship MUST be supplemented, not skipped
|
|
192
|
-
- CONTEXT.md contains only domain terms, not technical terms (technical terms belong in the code branch)
|
|
193
|
-
- Graphify runs ONLY on docs — DO NOT run on source code
|
|
194
|
-
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/` directly outside graphify workflow (Phase 3 supplementation is the only exception)
|
|
File without changes
|