adspecs 0.1.18 → 0.1.20

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.
Files changed (88) hide show
  1. package/.adspecs/extensions/git/commands/adspecs.git.initialize.md +4 -4
  2. package/.adspecs/extensions/git/extension.yml +1 -1
  3. package/.adspecs/extensions/git/git-config.yml +17 -2
  4. package/.adspecs/extensions.yml +32 -0
  5. package/.adspecs/feature.json +16 -16
  6. package/.adspecs/feature.yml +28 -28
  7. package/.adspecs/paths.json +17 -0
  8. package/.adspecs/templates/02-/344/272/247/345/223/201/351/234/200/346/261/202/350/257/264/346/230/216/344/271/246/346/250/241/346/235/277.md +4 -0
  9. package/.adspecs/workflows/adspecs/workflow.yml +5 -4
  10. package/.claude-plugin/marketplace.json +23 -23
  11. package/.claude-plugin/plugin.json +18 -18
  12. package/.qoder-plugin/plugin.json +31 -31
  13. package/CLAUDE.md +1 -5
  14. package/README.md +395 -395
  15. package/bin/adspecs.js +129 -129
  16. package/hooks/commit-queue.js +245 -245
  17. package/hooks/hooks.json +63 -63
  18. package/hooks/session-start.js +44 -44
  19. package/hooks/wiki-queue.js +127 -127
  20. package/package.json +61 -61
  21. package/references/ant6-front-standard/index.md +99 -99
  22. package/references/antd-front-demo/.env.develop +12 -0
  23. package/references/antd-front-demo/.env.production +5 -0
  24. package/references/antd-front-demo/package-lock.json +2 -2
  25. package/references/antd-front-demo/package.json +1 -1
  26. package/references/antd-front-demo/public/mockServiceWorker.js +361 -361
  27. package/references/ecp-end-standard/index.md +63 -63
  28. package/references/python-end-standard/01-Python/345/220/216/347/253/257/347/274/226/347/240/201/350/247/204/350/214/203.md +372 -372
  29. package/references/python-end-standard/02-/346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/344/270/216/344/275/277/347/224/250/350/247/204/350/214/203.md +226 -226
  30. package/references/python-end-standard/03-Celery/345/274/202/346/255/245/344/273/273/345/212/241/350/247/204/350/214/203.md +237 -237
  31. package/references/python-end-standard/04-Redis/344/275/277/347/224/250/350/247/204/350/214/203.md +231 -231
  32. package/scripts/postinstall.js +107 -107
  33. package/scripts/sync-version.js +105 -105
  34. package/skills/.claude/.wiki-update-queue +26 -26
  35. package/skills/adspecs-constitution/SKILL.md +157 -0
  36. package/skills/adspecs-export-word/SKILL.md +498 -498
  37. package/skills/adspecs-export-word/references/md-to-docx.js +862 -862
  38. package/skills/adspecs-export-word/references/package-lock.json +220 -220
  39. package/skills/adspecs-export-word/references/package.json +10 -10
  40. package/skills/adspecs-front-prototype/SKILL.md +405 -0
  41. package/skills/adspecs-git-commit/SKILL.md +23 -8
  42. package/skills/adspecs-git-initialize/SKILL.md +54 -0
  43. package/skills/adspecs-plan/SKILL.md +59 -69
  44. package/skills/adspecs-prd/SKILL.md +13 -5
  45. package/skills/adspecs-prd-to-demo/SKILL.md +532 -0
  46. package/skills/adspecs-tasks/SKILL.md +175 -204
  47. package/skills/adspecs-update-status/SKILL.md +382 -382
  48. package/skills/adspecs-utest/SKILL.md +107 -116
  49. package/skills/grill-me/SKILL.md +7 -0
  50. package/skills/grill-me/agents/openai.yaml +5 -0
  51. package/skills/playwright-cli/SKILL.md +420 -0
  52. package/skills/playwright-cli/references/element-attributes.md +23 -0
  53. package/skills/playwright-cli/references/playwright-tests.md +39 -0
  54. package/skills/playwright-cli/references/request-mocking.md +87 -0
  55. package/skills/playwright-cli/references/running-code.md +241 -0
  56. package/skills/playwright-cli/references/session-management.md +225 -0
  57. package/skills/playwright-cli/references/storage-state.md +275 -0
  58. package/skills/playwright-cli/references/test-generation.md +433 -0
  59. package/skills/playwright-cli/references/tracing.md +139 -0
  60. package/skills/playwright-cli/references/video-recording.md +143 -0
  61. package/skills/playwright-trace/SKILL.md +171 -0
  62. package/skills/project-init/references/front-demo/.claude/settings.local.json +9 -0
  63. package/skills/wiki-update/SKILL.md +232 -232
  64. package/src/commands/doctor.js +197 -197
  65. package/src/commands/init.js +83 -83
  66. package/src/commands/plugin.js +165 -165
  67. package/src/commands/update.js +87 -87
  68. package/src/lib/area-scanner.js +129 -129
  69. package/src/lib/copier.js +104 -104
  70. package/src/lib/dir-utils.js +133 -133
  71. package/src/lib/json-merge.js +114 -114
  72. package/src/lib/paths-defaults.js +37 -37
  73. package/src/lib/prompts.js +347 -345
  74. package/src/lib/readme-gen.js +143 -143
  75. package/src/lib/report.js +327 -327
  76. package/src/lib/scaffolder.js +518 -518
  77. package/src/lib/short-name.js +36 -36
  78. package/src/utils.js +80 -80
  79. package/references/antd-front-demo/.env +0 -15
  80. package/references/antd-front-demo/src/pages/aps/coil/components/CoilDrawer.tsx +0 -141
  81. package/references/antd-front-demo/src/pages/aps/coil/index.tsx +0 -209
  82. package/references/antd-front-demo/src/pages/aps/optimization/index.tsx +0 -192
  83. package/references/antd-front-demo/src/pages/aps/order/components/OrderDrawer.tsx +0 -251
  84. package/references/antd-front-demo/src/pages/aps/order/index.tsx +0 -273
  85. package/references/antd-front-demo/src/pages/aps/param/index.tsx +0 -153
  86. package/references/antd-front-demo/src/pages/aps/plan/components/CuttingPlanVisualization.tsx +0 -821
  87. package/references/antd-front-demo/src/pages/aps/plan/index.tsx +0 -254
  88. package/references/antd-front-demo/src/pages/aps/task/index.tsx +0 -190
package/bin/adspecs.js CHANGED
@@ -1,129 +1,129 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
-
4
- const { Command } = require('commander');
5
- const path = require('path');
6
- const fs = require('fs');
7
-
8
- // 读取 package.json 获取版本号
9
- const pkgPath = path.resolve(__dirname, '..', 'package.json');
10
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
11
-
12
- const program = new Command();
13
-
14
- program
15
- .name('adspecs')
16
- .description('adspecs — AI first 工程规范驱动开发 CLI')
17
- .version(pkg.version, '-v, --version', '输出版本号');
18
-
19
- // ============ init 命令 ============
20
- program
21
- .command('init')
22
- .description('初始化项目目录结构(等价于 Claude Code 的 /project-init 技能)')
23
- .option('--project-name <name>', '项目名称')
24
- .option('--project-dir <dir>', '项目目录名(留空=当前目录)')
25
- .option('--company <name>', '公司名称', 'XX有限公司')
26
- .option('--confidentiality <level>', '文件密级: 公开|内部资料|机密|绝密', '内部资料')
27
- .option('--mode <mode>', '初始化模式: simple|classic|full|demo')
28
- .option('--front-demo <stack>', '前端演示技术栈: vue|antd', 'vue')
29
- .option('--modules <list>', '后端模块列表(逗号分隔,格式 {port}-crm-{name}:{package})')
30
- .option('--non-interactive', '非交互模式,所有未提供的参数使用默认值')
31
- .option('--force', '跳过冲突决策,所有已存在区域直接重新创建')
32
- .option('-y, --yes', '自动确认执行(跳过执行前确认步骤,但保留冲突决策提示)')
33
- .action(async (options) => {
34
- try {
35
- const initCmd = require('../src/commands/init');
36
- await initCmd(options);
37
- } catch (err) {
38
- console.error('❌ 初始化失败:', err.message);
39
- if (process.env.DEBUG) console.error(err.stack);
40
- process.exit(1);
41
- }
42
- });
43
-
44
- // ============ plugin 命令组 ============
45
- const pluginCmd = program
46
- .command('plugin')
47
- .description('Claude Code 插件管理');
48
-
49
- pluginCmd
50
- .command('install')
51
- .description('注册当前 adspecs 为 Claude Code 插件')
52
- .option('--scope <scope>', '安装范围: user|project', 'user')
53
- .action(async (options) => {
54
- try {
55
- const pluginCmd = require('../src/commands/plugin');
56
- await pluginCmd.install(options);
57
- } catch (err) {
58
- console.error('❌ 插件注册失败:', err.message);
59
- if (process.env.DEBUG) console.error(err.stack);
60
- process.exit(1);
61
- }
62
- });
63
-
64
- pluginCmd
65
- .command('uninstall')
66
- .description('从 Claude Code 中卸载 adspecs 插件')
67
- .option('--scope <scope>', '卸载范围: user|project', 'user')
68
- .action(async (options) => {
69
- try {
70
- const pluginCmd = require('../src/commands/plugin');
71
- await pluginCmd.uninstall(options);
72
- } catch (err) {
73
- console.error('❌ 插件卸载失败:', err.message);
74
- if (process.env.DEBUG) console.error(err.stack);
75
- process.exit(1);
76
- }
77
- });
78
-
79
- // ============ doctor 命令 ============
80
- program
81
- .command('doctor')
82
- .description('检查环境依赖(Node.js、git、Python、PowerShell 等)')
83
- .action(async () => {
84
- try {
85
- const doctorCmd = require('../src/commands/doctor');
86
- await doctorCmd();
87
- } catch (err) {
88
- console.error('❌ 环境检查失败:', err.message);
89
- if (process.env.DEBUG) console.error(err.stack);
90
- process.exit(1);
91
- }
92
- });
93
-
94
- // ============ update 命令 ============
95
- program
96
- .command('update')
97
- .description('升级 adspecs 到最新版本(等价于 npm install -g adspecs@latest)')
98
- .option('--version <version>', '升级到指定版本(默认 latest)')
99
- .action(async (options) => {
100
- try {
101
- const updateCmd = require('../src/commands/update');
102
- await updateCmd(options);
103
- } catch (err) {
104
- console.error('❌ 升级失败:', err.message);
105
- if (process.env.DEBUG) console.error(err.stack);
106
- process.exit(1);
107
- }
108
- });
109
-
110
- // ============ 帮助信息增强 ============
111
- program.addHelpText('after', `
112
- 示例:
113
- $ adspecs init # 交互式初始化
114
- $ adspecs init --mode simple # 快速初始化(交互选择其余参数)
115
- $ adspecs init --non-interactive # 完全非交互(使用默认值)
116
- $ adspecs init --project-name "我的项目" --mode full --front-demo antd
117
- $ adspecs plugin install # 注册为 Claude Code 插件(默认 user 范围)
118
- $ adspecs plugin install --scope project # 仅注册到当前项目
119
- $ adspecs plugin install --scope user # 注册到当前用户(全局可用)
120
- $ adspecs plugin uninstall --scope project # 从当前项目卸载
121
- $ adspecs doctor # 检查环境依赖
122
- $ adspecs update # 升级到最新版本
123
- $ adspecs update --version 0.2.0 # 升级到指定版本
124
-
125
- 文档:
126
- https://gitee.com/yuebon/adspecs
127
- `);
128
-
129
- program.parse();
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const { Command } = require('commander');
5
+ const path = require('path');
6
+ const fs = require('fs');
7
+
8
+ // 读取 package.json 获取版本号
9
+ const pkgPath = path.resolve(__dirname, '..', 'package.json');
10
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
11
+
12
+ const program = new Command();
13
+
14
+ program
15
+ .name('adspecs')
16
+ .description('adspecs — AI first 工程规范驱动开发 CLI')
17
+ .version(pkg.version, '-v, --version', '输出版本号');
18
+
19
+ // ============ init 命令 ============
20
+ program
21
+ .command('init')
22
+ .description('初始化项目目录结构(等价于 Claude Code 的 /project-init 技能)')
23
+ .option('--project-name <name>', '项目名称')
24
+ .option('--project-dir <dir>', '项目目录名(留空=当前目录)')
25
+ .option('--company <name>', '公司名称', 'XX有限公司')
26
+ .option('--confidentiality <level>', '文件密级: 公开|内部资料|机密|绝密', '内部资料')
27
+ .option('--mode <mode>', '初始化模式: simple|classic|full|demo')
28
+ .option('--front-demo <stack>', '前端演示技术栈: vue|antd', 'vue')
29
+ .option('--modules <list>', '后端模块列表(逗号分隔,格式 {port}-crm-{name}:{package})')
30
+ .option('--non-interactive', '非交互模式,所有未提供的参数使用默认值')
31
+ .option('--force', '跳过冲突决策,所有已存在区域直接重新创建')
32
+ .option('-y, --yes', '自动确认执行(跳过执行前确认步骤,但保留冲突决策提示)')
33
+ .action(async (options) => {
34
+ try {
35
+ const initCmd = require('../src/commands/init');
36
+ await initCmd(options);
37
+ } catch (err) {
38
+ console.error('❌ 初始化失败:', err.message);
39
+ if (process.env.DEBUG) console.error(err.stack);
40
+ process.exit(1);
41
+ }
42
+ });
43
+
44
+ // ============ plugin 命令组 ============
45
+ const pluginCmd = program
46
+ .command('plugin')
47
+ .description('Claude Code 插件管理');
48
+
49
+ pluginCmd
50
+ .command('install')
51
+ .description('注册当前 adspecs 为 Claude Code 插件')
52
+ .option('--scope <scope>', '安装范围: user|project', 'user')
53
+ .action(async (options) => {
54
+ try {
55
+ const pluginCmd = require('../src/commands/plugin');
56
+ await pluginCmd.install(options);
57
+ } catch (err) {
58
+ console.error('❌ 插件注册失败:', err.message);
59
+ if (process.env.DEBUG) console.error(err.stack);
60
+ process.exit(1);
61
+ }
62
+ });
63
+
64
+ pluginCmd
65
+ .command('uninstall')
66
+ .description('从 Claude Code 中卸载 adspecs 插件')
67
+ .option('--scope <scope>', '卸载范围: user|project', 'user')
68
+ .action(async (options) => {
69
+ try {
70
+ const pluginCmd = require('../src/commands/plugin');
71
+ await pluginCmd.uninstall(options);
72
+ } catch (err) {
73
+ console.error('❌ 插件卸载失败:', err.message);
74
+ if (process.env.DEBUG) console.error(err.stack);
75
+ process.exit(1);
76
+ }
77
+ });
78
+
79
+ // ============ doctor 命令 ============
80
+ program
81
+ .command('doctor')
82
+ .description('检查环境依赖(Node.js、git、Python、PowerShell 等)')
83
+ .action(async () => {
84
+ try {
85
+ const doctorCmd = require('../src/commands/doctor');
86
+ await doctorCmd();
87
+ } catch (err) {
88
+ console.error('❌ 环境检查失败:', err.message);
89
+ if (process.env.DEBUG) console.error(err.stack);
90
+ process.exit(1);
91
+ }
92
+ });
93
+
94
+ // ============ update 命令 ============
95
+ program
96
+ .command('update')
97
+ .description('升级 adspecs 到最新版本(等价于 npm install -g adspecs@latest)')
98
+ .option('--version <version>', '升级到指定版本(默认 latest)')
99
+ .action(async (options) => {
100
+ try {
101
+ const updateCmd = require('../src/commands/update');
102
+ await updateCmd(options);
103
+ } catch (err) {
104
+ console.error('❌ 升级失败:', err.message);
105
+ if (process.env.DEBUG) console.error(err.stack);
106
+ process.exit(1);
107
+ }
108
+ });
109
+
110
+ // ============ 帮助信息增强 ============
111
+ program.addHelpText('after', `
112
+ 示例:
113
+ $ adspecs init # 交互式初始化
114
+ $ adspecs init --mode simple # 快速初始化(交互选择其余参数)
115
+ $ adspecs init --non-interactive # 完全非交互(使用默认值)
116
+ $ adspecs init --project-name "我的项目" --mode full --front-demo antd
117
+ $ adspecs plugin install # 注册为 Claude Code 插件(默认 user 范围)
118
+ $ adspecs plugin install --scope project # 仅注册到当前项目
119
+ $ adspecs plugin install --scope user # 注册到当前用户(全局可用)
120
+ $ adspecs plugin uninstall --scope project # 从当前项目卸载
121
+ $ adspecs doctor # 检查环境依赖
122
+ $ adspecs update # 升级到最新版本
123
+ $ adspecs update --version 0.2.0 # 升级到指定版本
124
+
125
+ 文档:
126
+ https://gitee.com/yuebon/adspecs
127
+ `);
128
+
129
+ program.parse();