@shendu-sdt/sdt-dev-agent 0.1.3-beta.9 → 0.1.3
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/README.md +80 -21
- package/dist/catalog/index.d.ts +4 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +4 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/mcp.d.ts +12 -0
- package/dist/catalog/mcp.d.ts.map +1 -0
- package/dist/catalog/mcp.js +37 -0
- package/dist/catalog/mcp.js.map +1 -0
- package/dist/catalog/shared.d.ts +5 -0
- package/dist/catalog/shared.d.ts.map +1 -0
- package/dist/catalog/shared.js +8 -0
- package/dist/catalog/shared.js.map +1 -0
- package/dist/catalog/skills.d.ts +14 -0
- package/dist/catalog/skills.d.ts.map +1 -0
- package/dist/catalog/skills.js +55 -0
- package/dist/catalog/skills.js.map +1 -0
- package/dist/catalog/workflows.d.ts +8 -0
- package/dist/catalog/workflows.d.ts.map +1 -0
- package/dist/catalog/workflows.js +24 -0
- package/dist/catalog/workflows.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +158 -125
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +56 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/core/bootstrap-entry.d.ts +5 -0
- package/dist/core/bootstrap-entry.d.ts.map +1 -0
- package/dist/core/bootstrap-entry.js +9 -0
- package/dist/core/bootstrap-entry.js.map +1 -0
- package/dist/core/capability-discovery.js +1 -1
- package/dist/core/capability-discovery.js.map +1 -1
- package/dist/core/hook-config.d.ts +19 -0
- package/dist/core/hook-config.d.ts.map +1 -0
- package/dist/core/hook-config.js +162 -0
- package/dist/core/hook-config.js.map +1 -0
- package/dist/core/init-options.d.ts.map +1 -1
- package/dist/core/init-options.js +7 -5
- package/dist/core/init-options.js.map +1 -1
- package/dist/core/init-plan.d.ts +1 -1
- package/dist/core/init-plan.d.ts.map +1 -1
- package/dist/core/init-plan.js +98 -32
- package/dist/core/init-plan.js.map +1 -1
- package/dist/core/init-writer.d.ts.map +1 -1
- package/dist/core/init-writer.js +109 -4
- package/dist/core/init-writer.js.map +1 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +4 -2
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/mcp-config.d.ts +3 -2
- package/dist/core/mcp-config.d.ts.map +1 -1
- package/dist/core/mcp-config.js +69 -27
- package/dist/core/mcp-config.js.map +1 -1
- package/dist/core/project-inspector.d.ts.map +1 -1
- package/dist/core/project-inspector.js +2 -1
- package/dist/core/project-inspector.js.map +1 -1
- package/dist/core/tool-profile.d.ts +41 -0
- package/dist/core/tool-profile.d.ts.map +1 -0
- package/dist/core/tool-profile.js +122 -0
- package/dist/core/tool-profile.js.map +1 -0
- package/dist/core/workflow-installer.d.ts.map +1 -1
- package/dist/core/workflow-installer.js +2 -1
- package/dist/core/workflow-installer.js.map +1 -1
- package/dist/types.d.ts +19 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/init-welcome.d.ts +1 -0
- package/dist/utils/init-welcome.d.ts.map +1 -1
- package/dist/utils/init-welcome.js +33 -9
- package/dist/utils/init-welcome.js.map +1 -1
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +11 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/progress-spinner.d.ts +22 -0
- package/dist/utils/progress-spinner.d.ts.map +1 -0
- package/dist/utils/progress-spinner.js +74 -0
- package/dist/utils/progress-spinner.js.map +1 -0
- package/package.json +3 -6
- package/templates/bootstrap/project-entry.md +16 -5
- package/templates/hooks/claude-code/bootstrap-project-docs-context.mjs +38 -0
- package/templates/hooks/claude-code/settings.json +36 -0
- package/templates/hooks/codex/bootstrap-project-docs-context.mjs +38 -0
- package/templates/hooks/codex/config.toml +16 -0
- package/templates/rules/claude-code/CLAUDE.md +17 -0
- package/templates/rules/codex/AGENTS.md +17 -0
- package/templates/skills/builtin/bootstrap-project-docs/SKILL.md +25 -11
- package/templates/skills/builtin/bootstrap-project-docs/agents/openai.yaml +4 -0
- package/templates/skills/builtin/bootstrap-project-docs/references/architecture-first.md +16 -4
- package/templates/skills/builtin/bootstrap-project-docs/references/doc-state-routing.md +28 -0
- package/templates/skills/builtin/bootstrap-project-docs/references/tool-rules-follow-up.md +19 -4
- package/dist/catalog.d.ts +0 -16
- package/dist/catalog.d.ts.map +0 -1
- package/dist/catalog.js +0 -98
- package/dist/catalog.js.map +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Bootstrap Project Docs"
|
|
3
|
+
short_description: "Generate project docs from real code"
|
|
4
|
+
default_prompt: "Use $bootstrap-project-docs to create or refresh ARCHITECTURE.md first, then replace the minimal AGENTS.md or CLAUDE.md bootstrap entry with project-specific rules from the current repository."
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
# Architecture First
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Make `ARCHITECTURE.md` the repository fact source.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
5
|
+
## Write for future implementation
|
|
6
|
+
|
|
7
|
+
- Capture the real layering, key directories, build and test entry points, and the normal place for new code.
|
|
8
|
+
- Delete stale or incorrect statements instead of preserving historical wording.
|
|
9
|
+
|
|
10
|
+
## Use only confirmed facts
|
|
11
|
+
|
|
12
|
+
- Derive facts from source code, configuration, package scripts, and directory structure.
|
|
13
|
+
- Treat other docs and existing rule files only as hints to verify.
|
|
14
|
+
- Mark unresolved but important items as `待确认`.
|
|
15
|
+
|
|
16
|
+
## Refresh instead of stacking
|
|
17
|
+
|
|
18
|
+
- If `ARCHITECTURE.md` already exists but no longer matches the repo, rewrite the stale sections from current code.
|
|
19
|
+
- Do not append a new layer of prose onto an outdated architecture doc.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Document State Routing
|
|
2
|
+
|
|
3
|
+
Route the work from the current root-document state.
|
|
4
|
+
|
|
5
|
+
## Neither document exists
|
|
6
|
+
|
|
7
|
+
- Create `ARCHITECTURE.md` first.
|
|
8
|
+
- Create `{{toolRulesDoc}}` immediately after `ARCHITECTURE.md`.
|
|
9
|
+
- Do not stop at a reminder or a to-do list.
|
|
10
|
+
|
|
11
|
+
## `ARCHITECTURE.md` and `{{toolRulesDoc}}` both exist
|
|
12
|
+
|
|
13
|
+
- Read the code first, then read both documents.
|
|
14
|
+
- If both still match the repository, keep edits minimal or skip doc changes.
|
|
15
|
+
- If either document is stale, refresh `ARCHITECTURE.md` first and then sync `{{toolRulesDoc}}`.
|
|
16
|
+
|
|
17
|
+
## Only `{{toolRulesDoc}}` exists
|
|
18
|
+
|
|
19
|
+
- Treat `{{toolRulesDoc}}` as a candidate rule set, not as a fact source.
|
|
20
|
+
- If it is only the minimal bootstrap entry, replace it after the architecture pass.
|
|
21
|
+
- Build `ARCHITECTURE.md` from code and config.
|
|
22
|
+
- Revisit `{{toolRulesDoc}}` after that, keeping only rules that still match the new architecture baseline.
|
|
23
|
+
|
|
24
|
+
## Only `ARCHITECTURE.md` exists
|
|
25
|
+
|
|
26
|
+
- Verify whether `ARCHITECTURE.md` still matches the repository.
|
|
27
|
+
- If it does, create `{{toolRulesDoc}}` from it.
|
|
28
|
+
- If it does not, refresh `ARCHITECTURE.md` first and then create `{{toolRulesDoc}}`.
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
# Tool Rules Follow-up
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Create or refresh `{{toolRulesDoc}}` only after `ARCHITECTURE.md` is trustworthy.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- `Claude Code` 项目再生成或刷新 `CLAUDE.md`
|
|
5
|
+
## Scope
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
- Write execution rules for the current tool, not project facts.
|
|
8
|
+
- Keep the doc short, specific, and actionable.
|
|
9
|
+
- Avoid changing business code while doing this doc pass.
|
|
10
|
+
|
|
11
|
+
## Minimum contents
|
|
12
|
+
|
|
13
|
+
- Read `ARCHITECTURE.md` before making broader edits.
|
|
14
|
+
- Follow the repository's existing directories and coding patterns.
|
|
15
|
+
- Avoid unrelated refactors, formatting churn, scope creep, and surprise dependencies.
|
|
16
|
+
- Include the common local develop, build, test, or verification commands when they are easy to confirm.
|
|
17
|
+
- Refuse to guess when architecture or source code does not confirm something.
|
|
18
|
+
|
|
19
|
+
## Existing-rule cleanup
|
|
20
|
+
|
|
21
|
+
- If `{{toolRulesDoc}}` is only the minimal bootstrap entry, treat it as a target to replace rather than a source to preserve.
|
|
22
|
+
- If `{{toolRulesDoc}}` already exists, keep only the rules that still match the repository.
|
|
23
|
+
- If the project previously had only `{{toolRulesDoc}}`, remove or rewrite rules that were based on stale assumptions after `ARCHITECTURE.md` is rebuilt.
|
package/dist/catalog.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { CatalogMcp, CatalogSkill, CatalogWorkflow, McpId, SkillId, WorkflowId } from './types.js';
|
|
2
|
-
export declare const SKILL_CATALOG: CatalogSkill[];
|
|
3
|
-
export declare const MCP_CATALOG: CatalogMcp[];
|
|
4
|
-
export declare const WORKFLOW_CATALOG: CatalogWorkflow[];
|
|
5
|
-
export declare const REQUIRED_SKILL_ID: SkillId;
|
|
6
|
-
export declare const DEFAULT_SKILL_IDS: SkillId[];
|
|
7
|
-
export declare const OPTIONAL_SKILL_IDS: SkillId[];
|
|
8
|
-
export declare const DEFAULT_MCP_IDS: McpId[];
|
|
9
|
-
export declare const OPTIONAL_MCP_IDS: McpId[];
|
|
10
|
-
export declare const SKILL_IDS: SkillId[];
|
|
11
|
-
export declare const MCP_IDS: McpId[];
|
|
12
|
-
export declare const WORKFLOW_IDS: WorkflowId[];
|
|
13
|
-
export declare function getSkillCatalogEntry(skillId: SkillId): CatalogSkill;
|
|
14
|
-
export declare function getMcpCatalogEntry(mcpId: McpId): CatalogMcp;
|
|
15
|
-
export declare function getWorkflowCatalogEntry(workflowId: WorkflowId): CatalogWorkflow;
|
|
16
|
-
//# sourceMappingURL=catalog.d.ts.map
|
package/dist/catalog.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,KAAK,EACL,OAAO,EACP,UAAU,EAEX,MAAM,YAAY,CAAA;AA4CnB,eAAO,MAAM,aAAa,EAAE,YAAY,EAYL,CAAA;AAEnC,eAAO,MAAM,WAAW,EAAE,UAAU,EAmBH,CAAA;AAEjC,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAUR,CAAA;AAEtC,eAAO,MAAM,iBAAiB,EAAE,OAAkC,CAAA;AAClE,eAAO,MAAM,iBAAiB,EAAE,OAAO,EAEb,CAAA;AAC1B,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAEd,CAAA;AAC1B,eAAO,MAAM,eAAe,EAAE,KAAK,EAEb,CAAA;AACtB,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAEd,CAAA;AAEtB,eAAO,MAAM,SAAS,EAAE,OAAO,EAEL,CAAA;AAC1B,eAAO,MAAM,OAAO,EAAE,KAAK,EAAqC,CAAA;AAChE,eAAO,MAAM,YAAY,EAAE,UAAU,EAAoD,CAAA;AAEzF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAMnE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAM3D;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAM/E"}
|
package/dist/catalog.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
|
-
const ALL_TOOLS = ['codex', 'claude-code'];
|
|
5
|
-
const currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
6
|
-
const projectRoot = path.resolve(currentDir, '..');
|
|
7
|
-
function loadRemoteSkillCatalog() {
|
|
8
|
-
const raw = readFileSync(path.join(projectRoot, 'templates', 'skills', 'remote', 'catalog.json'), 'utf8');
|
|
9
|
-
const entries = JSON.parse(raw);
|
|
10
|
-
return entries.map((entry) => ({
|
|
11
|
-
id: entry.id,
|
|
12
|
-
displayName: entry.displayName,
|
|
13
|
-
description: entry.description,
|
|
14
|
-
sourceType: 'remote-recommended',
|
|
15
|
-
selection: entry.selection,
|
|
16
|
-
detectionMode: entry.detectionMode,
|
|
17
|
-
supportedTools: entry.supportedTools,
|
|
18
|
-
remote: {
|
|
19
|
-
source: entry.source,
|
|
20
|
-
installCommand: entry.installCommand,
|
|
21
|
-
installTargets: entry.installTargets,
|
|
22
|
-
},
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
export const SKILL_CATALOG = [
|
|
26
|
-
{
|
|
27
|
-
id: 'bootstrap-project-docs',
|
|
28
|
-
displayName: 'bootstrap-project-docs',
|
|
29
|
-
description: '初始化项目事实文档与工具规则文档的必装 bootstrap skill。',
|
|
30
|
-
sourceType: 'builtin-local',
|
|
31
|
-
selection: 'required',
|
|
32
|
-
detectionMode: 'single',
|
|
33
|
-
supportedTools: ALL_TOOLS,
|
|
34
|
-
templateDir: 'skills/builtin/bootstrap-project-docs',
|
|
35
|
-
},
|
|
36
|
-
...loadRemoteSkillCatalog(),
|
|
37
|
-
];
|
|
38
|
-
export const MCP_CATALOG = [
|
|
39
|
-
{
|
|
40
|
-
id: 'context7',
|
|
41
|
-
displayName: 'Context7',
|
|
42
|
-
description: '默认安装的项目级文档检索 MCP。',
|
|
43
|
-
sourceType: 'project-template',
|
|
44
|
-
selection: 'default',
|
|
45
|
-
supportedTools: ALL_TOOLS,
|
|
46
|
-
templateBaseDir: 'mcp/context7',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
id: 'mastergo',
|
|
50
|
-
displayName: 'MasterGo',
|
|
51
|
-
description: '选装设计稿 MCP。',
|
|
52
|
-
sourceType: 'project-template',
|
|
53
|
-
selection: 'optional',
|
|
54
|
-
supportedTools: ALL_TOOLS,
|
|
55
|
-
templateBaseDir: 'mcp/mastergo',
|
|
56
|
-
},
|
|
57
|
-
];
|
|
58
|
-
export const WORKFLOW_CATALOG = [
|
|
59
|
-
{
|
|
60
|
-
id: 'openspec',
|
|
61
|
-
displayName: 'OpenSpec',
|
|
62
|
-
description: '独立的 spec-driven workflow 工作流能力,不属于普通 skills 或 MCP。',
|
|
63
|
-
sourceType: 'workflow-integration',
|
|
64
|
-
supportedTools: ALL_TOOLS,
|
|
65
|
-
templateBaseDir: 'workflows/openspec',
|
|
66
|
-
installCommand: 'npx -y @fission-ai/openspec@latest init --tools <tool> --profile core .',
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
export const REQUIRED_SKILL_ID = 'bootstrap-project-docs';
|
|
70
|
-
export const DEFAULT_SKILL_IDS = SKILL_CATALOG.filter((skill) => skill.selection === 'default').map((skill) => skill.id);
|
|
71
|
-
export const OPTIONAL_SKILL_IDS = SKILL_CATALOG.filter((skill) => skill.selection === 'optional').map((skill) => skill.id);
|
|
72
|
-
export const DEFAULT_MCP_IDS = MCP_CATALOG.filter((mcp) => mcp.selection === 'default').map((mcp) => mcp.id);
|
|
73
|
-
export const OPTIONAL_MCP_IDS = MCP_CATALOG.filter((mcp) => mcp.selection === 'optional').map((mcp) => mcp.id);
|
|
74
|
-
export const SKILL_IDS = SKILL_CATALOG.filter((skill) => skill.id !== REQUIRED_SKILL_ID).map((skill) => skill.id);
|
|
75
|
-
export const MCP_IDS = MCP_CATALOG.map((mcp) => mcp.id);
|
|
76
|
-
export const WORKFLOW_IDS = WORKFLOW_CATALOG.map((workflow) => workflow.id);
|
|
77
|
-
export function getSkillCatalogEntry(skillId) {
|
|
78
|
-
const skill = SKILL_CATALOG.find((item) => item.id === skillId);
|
|
79
|
-
if (!skill) {
|
|
80
|
-
throw new Error(`Unknown skill catalog id: ${skillId}`);
|
|
81
|
-
}
|
|
82
|
-
return skill;
|
|
83
|
-
}
|
|
84
|
-
export function getMcpCatalogEntry(mcpId) {
|
|
85
|
-
const mcp = MCP_CATALOG.find((item) => item.id === mcpId);
|
|
86
|
-
if (!mcp) {
|
|
87
|
-
throw new Error(`Unknown MCP catalog id: ${mcpId}`);
|
|
88
|
-
}
|
|
89
|
-
return mcp;
|
|
90
|
-
}
|
|
91
|
-
export function getWorkflowCatalogEntry(workflowId) {
|
|
92
|
-
const workflow = WORKFLOW_CATALOG.find((item) => item.id === workflowId);
|
|
93
|
-
if (!workflow) {
|
|
94
|
-
throw new Error(`Unknown workflow catalog id: ${workflowId}`);
|
|
95
|
-
}
|
|
96
|
-
return workflow;
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=catalog.js.map
|
package/dist/catalog.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|