openone-workflow-kit 0.1.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/CHANGELOG.md +21 -0
- package/CODE_OF_CONDUCT.md +25 -0
- package/CONTRIBUTING.md +51 -0
- package/INIT.md +81 -0
- package/LICENSE +201 -0
- package/NOTICE +6 -0
- package/README.md +195 -0
- package/SECURITY.md +39 -0
- package/bin/check-contract.cjs +137 -0
- package/bin/check-sanitized.cjs +93 -0
- package/bin/init-workspace.cjs +966 -0
- package/docs/assets/PROVENANCE.md +20 -0
- package/docs/assets/architecture.svg +112 -0
- package/docs/assets/hero.svg +83 -0
- package/docs/assets/quick-demo.svg +74 -0
- package/docs/assets/social-preview.svg +57 -0
- package/docs/assets/visual-manifest.json +52 -0
- package/docs/definition-of-done.md +80 -0
- package/docs/dual-track-workflow.md +90 -0
- package/docs/local-merge-notes.md +21 -0
- package/docs/maintainer-handoff.md +150 -0
- package/docs/manual-publish.md +119 -0
- package/docs/private-denylist.example.txt +11 -0
- package/docs/publication-decisions.md +36 -0
- package/docs/release-checklist.md +72 -0
- package/docs/releases/v0.1.0.md +70 -0
- package/docs/shareable-install.md +51 -0
- package/docs/tool-install-recipes.md +103 -0
- package/examples/ecommerce/team-profile.example.yaml +141 -0
- package/examples/education/team-profile.example.yaml +143 -0
- package/examples/saas-to-b/team-profile.example.yaml +130 -0
- package/examples/team-profile.example.yaml +69 -0
- package/install.sh +27 -0
- package/package.json +65 -0
- package/scripts/build-release.cjs +141 -0
- package/scripts/release-source-state.cjs +38 -0
- package/templates/AGENTS.template.md +26 -0
- package/test/release-readiness.cjs +214 -0
- package/test/smoke.cjs +272 -0
- package/workflow/adapters/README.md +16 -0
- package/workflow/core/README.md +38 -0
- package/workflow/core/capabilities/README.md +61 -0
- package/workflow/core/capabilities/acceptance-oracle-tracker.md +45 -0
- package/workflow/core/capabilities/branch-gatekeeper.md +57 -0
- package/workflow/core/capabilities/channel-experiment-tracker.md +32 -0
- package/workflow/core/capabilities/ci-cd-automation-governor.md +123 -0
- package/workflow/core/capabilities/contract-tracer.md +53 -0
- package/workflow/core/capabilities/data-change-safety-checker.md +52 -0
- package/workflow/core/capabilities/definition-lint.md +81 -0
- package/workflow/core/capabilities/deployment-readiness-checker.md +57 -0
- package/workflow/core/capabilities/impact-scope-analyzer.md +50 -0
- package/workflow/core/capabilities/knowledge-capture-maintainer.md +32 -0
- package/workflow/core/capabilities/market-evidence-grader.md +33 -0
- package/workflow/core/capabilities/memory-curator.md +48 -0
- package/workflow/core/capabilities/personal-git-operator.md +41 -0
- package/workflow/core/capabilities/personal-release-checklist.md +49 -0
- package/workflow/core/capabilities/prd-code-diff-checker.md +53 -0
- package/workflow/core/capabilities/protocol-state-machine-checker.md +57 -0
- package/workflow/core/capabilities/release-safety-checker.md +61 -0
- package/workflow/core/capabilities/repo-baseline-scanner.md +48 -0
- package/workflow/core/capabilities/rule-extractor.md +48 -0
- package/workflow/core/capabilities/runtime-evidence-triage.md +53 -0
- package/workflow/core/capabilities/security-reviewer.md +48 -0
- package/workflow/core/capabilities/test-evidence-reviewer.md +50 -0
- package/workflow/core/capabilities/ui-baseline-reviewer.md +50 -0
- package/workflow/core/capabilities/verify-app.md +51 -0
- package/workflow/core/capabilities/worktree-isolator.md +53 -0
- package/workflow/core/commands/01-/351/234/200/346/261/202/350/256/250/350/256/272.md +36 -0
- package/workflow/core/commands/02-/344/272/247/345/223/201/346/226/207/346/241/243.md +35 -0
- package/workflow/core/commands/02B-UI/350/256/276/350/256/241.md +75 -0
- package/workflow/core/commands/03-06-/347/240/224/345/217/221/345/207/206/345/244/207.md +30 -0
- package/workflow/core/commands/03-/346/212/200/346/234/257/346/236/266/346/236/204.md +32 -0
- package/workflow/core/commands/04-/344/273/243/347/240/201/345/256/236/347/216/260.md +32 -0
- package/workflow/core/commands/04A-/345/211/215/347/253/257/344/273/243/347/240/201/345/256/236/347/216/260.md +36 -0
- package/workflow/core/commands/04B-/345/220/216/347/253/257/344/273/243/347/240/201/345/256/236/347/216/260.md +31 -0
- package/workflow/core/commands/05-/344/273/243/347/240/201/345/256/241/346/237/245.md +31 -0
- package/workflow/core/commands/06-/346/265/213/350/257/225/347/224/250/344/276/213.md +34 -0
- package/workflow/core/commands/07-/346/265/213/350/257/225/346/211/247/350/241/214.md +33 -0
- package/workflow/core/commands/08-/345/217/221/345/270/203/345/207/206/345/244/207.md +44 -0
- package/workflow/core/commands/09-/345/217/221/345/270/203/346/211/247/350/241/214.md +39 -0
- package/workflow/core/commands/10-/345/244/215/347/233/230/346/200/273/347/273/223.md +41 -0
- package/workflow/core/commands/B1-B8-/345/225/206/344/270/232/345/214/226/345/207/206/345/244/207.md +30 -0
- package/workflow/core/commands/B1-/344/270/232/345/212/241/345/256/232/344/275/215.md +38 -0
- package/workflow/core/commands/B2-/345/225/206/344/270/232/346/250/241/345/274/217.md +38 -0
- package/workflow/core/commands/B3-PMF/344/270/216/345/256/242/346/210/267/347/224/273/345/203/217.md +39 -0
- package/workflow/core/commands/B4-/345/234/272/346/231/257/344/270/216/350/264/255/344/271/260/346/227/205/347/250/213.md +37 -0
- package/workflow/core/commands/B5-/346/270/240/351/201/223/346/274/217/346/226/227/346/230/240/345/260/204.md +39 -0
- package/workflow/core/commands/B6-/350/220/245/351/224/200/350/216/267/345/256/242/347/255/226/347/225/245.md +38 -0
- package/workflow/core/commands/B7-/350/220/245/351/224/200/351/242/204/347/256/227.md +36 -0
- package/workflow/core/commands/B8-/346/270/240/351/201/223/346/211/247/350/241/214/347/255/226/347/225/245.md +39 -0
- package/workflow/core/commands/B9-/347/255/226/347/225/245/345/244/215/347/233/230.md +38 -0
- package/workflow/core/commands/README.md +56 -0
- package/workflow/core/commands/init-workspace.md +29 -0
- package/workflow/core/commands/new-feature.md +33 -0
- package/workflow/core/commands/new-product.md +28 -0
- package/workflow/core/commands/workflow-status.md +30 -0
- package/workflow/core/commands//344/270/200/350/207/264/346/200/247/346/243/200/346/237/245.md +35 -0
- package/workflow/core/commands//344/272/244/344/273/230/350/207/263/345/256/214/346/210/220.md +40 -0
- package/workflow/core/commands//345/256/232/344/271/211/345/256/214/346/210/220.md +41 -0
- package/workflow/core/commands//346/276/204/346/270/205.md +31 -0
- package/workflow/core/templates/00-business-status.md +43 -0
- package/workflow/core/templates/00-workflow-status.md +50 -0
- package/workflow/core/templates/README.md +12 -0
- package/workflow/core/templates/business-stage-document.md +49 -0
- package/workflow/core/templates/completion-contract.md +114 -0
- package/workflow/core/templates/constitution.template.md +50 -0
- package/workflow/core/templates/living-spec.md +35 -0
- package/workflow/core/templates/stage-document.md +42 -0
- package/workflow/core/templates/team-profile.template.yaml +104 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to OpenOne Workflow Kit are documented here. The project follows [Semantic Versioning](https://semver.org/).
|
|
4
|
+
|
|
5
|
+
## [0.1.0] - 2026-07-19
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Tool-neutral workflow core for a solo developer's delivery and commercialization tracks.
|
|
10
|
+
- Completion Contract, Definition Lint, Acceptance Oracle, and `/交付至完成` workflow.
|
|
11
|
+
- Adapters for Claude Code, Codex, Cursor, GitHub Copilot, CodeBuddy, Kiro, and Trae.
|
|
12
|
+
- Local workspace scanner, generated team profile, release-safety boundaries, and sanitized-content checker.
|
|
13
|
+
- Cross-platform release packaging with an installed-tarball smoke test.
|
|
14
|
+
- GitHub Actions coverage for Ubuntu on Node.js 18/20/22, Windows on Node.js 20, and macOS on Node.js 20.
|
|
15
|
+
|
|
16
|
+
### Security
|
|
17
|
+
|
|
18
|
+
- The initializer reads and writes only local workspace files; it does not upload source material or perform remote Git, publishing, deployment, database, or production-configuration writes.
|
|
19
|
+
- Release checks scan for common credential assignments, private-key markers, and private-network URLs; maintainers can add an external private denylist.
|
|
20
|
+
|
|
21
|
+
[0.1.0]: https://github.com/bluecoast1379/openone-workflow-kit/releases/tag/v0.1.0
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 行为准则
|
|
2
|
+
|
|
3
|
+
## 基本标准
|
|
4
|
+
|
|
5
|
+
参与者应保持专业、尊重和聚焦问题本身。讨论工作流、工具限制、风险边界和实现方案时,请给出可验证依据,避免人身攻击、骚扰、歧视或泄露他人隐私。
|
|
6
|
+
|
|
7
|
+
鼓励的行为:
|
|
8
|
+
|
|
9
|
+
- 清楚描述问题、复现步骤和影响范围;
|
|
10
|
+
- 尊重不同团队的工具差异和流程约束;
|
|
11
|
+
- 在公开材料中使用脱敏、合成示例;
|
|
12
|
+
- 对安全、隐私和远程操作保持谨慎。
|
|
13
|
+
|
|
14
|
+
不接受的行为:
|
|
15
|
+
|
|
16
|
+
- 发布他人的私有信息、凭证、日志或业务数据;
|
|
17
|
+
- 用攻击性语言针对个人或群体;
|
|
18
|
+
- 故意引导 agent 绕过安全闸门;
|
|
19
|
+
- 在公共渠道要求他人提供敏感资料。
|
|
20
|
+
|
|
21
|
+
## 执行
|
|
22
|
+
|
|
23
|
+
维护者可以编辑、隐藏或关闭违反准则的 issue、PR 或讨论。严重或重复违反时,维护者可以限制参与。
|
|
24
|
+
|
|
25
|
+
报告行为问题时,请只提供维护者判断所需的最小上下文。除非已约定私有报告渠道,不要包含私有或敏感数据。
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 贡献说明
|
|
2
|
+
|
|
3
|
+
感谢改进 Agent Workflow Starter Kit。本项目坚持三个原则:workflow core 保持通用、本地优先、工具无关。
|
|
4
|
+
|
|
5
|
+
## 提交 PR 前
|
|
6
|
+
|
|
7
|
+
先运行:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm run check
|
|
11
|
+
npm run build:release
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
再检查本地发布清单:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cat dist/RELEASE_MANIFEST.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 隐私规则
|
|
21
|
+
|
|
22
|
+
请不要贡献以下内容:
|
|
23
|
+
|
|
24
|
+
- 私有公司名称或内部项目名称;
|
|
25
|
+
- 私有工作区里的真实仓库名;
|
|
26
|
+
- 客户、员工、学员、患者、账号、支付或运营记录;
|
|
27
|
+
- 生产 URL、内部域名、日志、SQL 导出、截图、凭证、token 或私钥;
|
|
28
|
+
- 可以追溯到真实组织的事故细节。
|
|
29
|
+
|
|
30
|
+
示例必须是合成的、可替换的。如果规则来自私有事件,请抽象机制并移除可识别事实后再提交。
|
|
31
|
+
|
|
32
|
+
## 修改范围
|
|
33
|
+
|
|
34
|
+
- 工具无关行为放在 `workflow/core/`。
|
|
35
|
+
- 团队特化配置示例放在 `examples/`。
|
|
36
|
+
- 工具特定行为放在 adapter 或初始化器生成逻辑里。
|
|
37
|
+
- adapter 必须保持薄入口,不能削弱 core 硬闸门。
|
|
38
|
+
- 远程 Git、创建分支、push、包发布、部署和数据库写入必须保持人工执行。
|
|
39
|
+
|
|
40
|
+
## PR 检查清单
|
|
41
|
+
|
|
42
|
+
- 修改是通用的,不绑定任何私有组织。
|
|
43
|
+
- `npm run check` 通过。
|
|
44
|
+
- `npm run build:release` 通过。
|
|
45
|
+
- 新增或修改的示例都是合成数据。
|
|
46
|
+
- 生成文件布局变化时,文档说明迁移或兼容影响。
|
|
47
|
+
- 除非维护者明确要求提交发布产物,否则不要提交生成的 `dist/` 文件。
|
|
48
|
+
|
|
49
|
+
## 提交历史
|
|
50
|
+
|
|
51
|
+
公开发布前,维护者应检查 commit message 和变更文件是否包含私有引用。如果私有数据进入尚未发布的历史,应在 push 前改写历史;如果泄露的是敏感凭证,应轮换对应密钥。
|
package/INIT.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# 初始化指南
|
|
2
|
+
|
|
3
|
+
本文说明个人开发者拿到 OpenOne Workflow Kit 路径、Git 地址或发布包后,如何在自己的项目或工作区初始化工作流。
|
|
4
|
+
|
|
5
|
+
## 推荐流程
|
|
6
|
+
|
|
7
|
+
1. 把 starter kit 放在目标产品仓库之外。
|
|
8
|
+
2. 打开目标产品工作区根目录。
|
|
9
|
+
3. 从目标根目录运行初始化器。
|
|
10
|
+
4. 检查生成的 `workflow/team-profile.yaml`。
|
|
11
|
+
5. 如果存在 `workflow/INITIALIZATION_QUESTIONS.md`,补齐缺失资料。
|
|
12
|
+
6. 如需调整工具列表,重新运行初始化器。
|
|
13
|
+
|
|
14
|
+
## 本地路径安装
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd /path/to/target-workspace
|
|
18
|
+
node /path/to/openone-workflow-kit/bin/init-workspace.cjs --target . --tools codex,claude,cursor
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Shell wrapper:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cd /path/to/target-workspace
|
|
25
|
+
/path/to/openone-workflow-kit/install.sh . --tools codex,claude,cursor
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## package bin 安装
|
|
29
|
+
|
|
30
|
+
如果 starter kit 已作为本地 package 安装:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
cd /path/to/target-workspace
|
|
34
|
+
openone-workflow-init --target . --tools codex,claude,cursor
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 非交互安装
|
|
38
|
+
|
|
39
|
+
在 agent 驱动或 CI-like 初始化中,终端无法回答问题时使用:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
openone-workflow-init --target . --tools codex,claude,cursor --yes
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
缺失资料会记录到 `workflow/INITIALIZATION_QUESTIONS.md`。
|
|
46
|
+
|
|
47
|
+
## 升级已有工作区
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
openone-workflow-init --target . --tools codex,claude,cursor --upgrade
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
如果已有文件会被覆盖,初始化器默认写出 `.agent-workflow-new` 文件;只有显式传入 `--force` 才会覆盖。
|
|
54
|
+
|
|
55
|
+
## 安全边界
|
|
56
|
+
|
|
57
|
+
初始化器不会:
|
|
58
|
+
|
|
59
|
+
- 执行远程 Git 命令;
|
|
60
|
+
- push 代码;
|
|
61
|
+
- 触发构建或部署;
|
|
62
|
+
- 执行数据库写入;
|
|
63
|
+
- 修改生产配置。
|
|
64
|
+
|
|
65
|
+
生成后的个人工作流允许 agent 在范围明确且工作树已检查后执行本地分支命名、创建、commit、tag 和本地 merge。远程 push、release、部署和生产配置写入需要用户明确授权。
|
|
66
|
+
|
|
67
|
+
## 工具别名
|
|
68
|
+
|
|
69
|
+
初始化器接受 `trea` 作为 `trae` 的别名,并写入 `.trae/instructions.md`。
|
|
70
|
+
|
|
71
|
+
## 接收方验收
|
|
72
|
+
|
|
73
|
+
正式用于需求交付前,请先确认:
|
|
74
|
+
|
|
75
|
+
- 已检查 `workflow/team-profile.yaml`;
|
|
76
|
+
- 如存在 `workflow/INITIALIZATION_QUESTIONS.md`,已补齐待补资料;
|
|
77
|
+
- 选中的工具 adapter 已生成;
|
|
78
|
+
- 已有文件没有被意外覆盖;
|
|
79
|
+
- 初始化期间没有发生远程 Git、push、部署、数据库或生产配置动作。
|
|
80
|
+
|
|
81
|
+
完整验收清单见 `docs/maintainer-handoff.md`。
|
package/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including the
|
|
49
|
+
original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work, excluding
|
|
103
|
+
those notices that do not pertain to any part of the Derivative
|
|
104
|
+
Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Do not include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright 2026 Agent Workflow Starter Kit contributors
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
package/NOTICE
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# OpenOne Workflow Kit
|
|
2
|
+
|
|
3
|
+
[](https://github.com/bluecoast1379/openone-workflow-kit/actions/workflows/check.yml)
|
|
4
|
+
[](https://www.npmjs.com/package/openone-workflow-kit)
|
|
5
|
+
[](./package.json)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
面向独立开发者的工具无关 agent 工作流:把产品研发和商业化放进同一个可验证闭环。核心不是更长的 prompt,而是把“什么叫完成”编译成可冻结的《完成合同》:**blocking 验收 Oracle 全部 PASS,才能宣布完成。**
|
|
11
|
+
|
|
12
|
+
- **研发轨**:需求 → 完成合同 → 实现/审查/测试 → 发布 → 复盘。
|
|
13
|
+
- **商业化轨**:定位 → 商业模式/PMF/ICP → 渠道/预算 → 策略复盘。
|
|
14
|
+
- **本地优先**:只读本地上下文并生成工作流文件;不上传资料,不自动 push、发布、部署或写生产数据。
|
|
15
|
+
|
|
16
|
+
## 如何选择
|
|
17
|
+
|
|
18
|
+
| 项目 | 服务对象 | 选它的理由 |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| [open-workflow-kit](https://github.com/bluecoast1379/open-workflow-kit) | AI Coding 团队 | 需要完成合同、证据账本和跨工具交付治理 |
|
|
21
|
+
| [business-agent](https://github.com/bluecoast1379/business-agent) | 企业业务 Agent | 需要从业务规划、网关脚手架到评测与运行边界 |
|
|
22
|
+
| **openone-workflow-kit(本项目)** | **独立开发者** | **需要个人研发 + 商业化双轨,同时控制流程税** |
|
|
23
|
+
|
|
24
|
+
## 30 秒 Quick Demo
|
|
25
|
+
|
|
26
|
+
前置条件:Node.js 18+;首次下载时间不计入 30 秒。在一个空目录中执行:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
mkdir openone-demo && cd openone-demo
|
|
30
|
+
npx --yes --package openone-workflow-kit@0.1.0 openone-workflow-init --target . --tools codex,cursor --yes
|
|
31
|
+
node -e "for (const f of ['workflow/team-profile.yaml','AGENTS.md']) require('node:fs').accessSync(f); console.log('OpenOne ready')"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
预期结果:终端输出 `OpenOne ready`,并生成 `workflow/team-profile.yaml`、`workflow/core/`、`AGENTS.md` 与所选工具 adapter。如果 npm 网络不可用,参考 [Git 或本地 tarball 安装](./docs/shareable-install.md)。
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
## 架构:一套 Core,两条轨道
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
1. `workflow/team-profile.yaml` 记录本地事实与路径;`specs/` 记录已发布行为真相。
|
|
43
|
+
2. `workflow/core/` 提供工具无关的阶段、完成合同、闸门、模板和 Oracle 能力。
|
|
44
|
+
3. `workflow/adapters/` 为 Claude、Codex、Cursor、Copilot、CodeBuddy、Kiro 和 Trae 生成薄入口;共享 core,但不承诺工具体验完全相同。
|
|
45
|
+
|
|
46
|
+
深入阅读:[定义完成指南](./docs/definition-of-done.md) · [双轨工作流设计](./docs/dual-track-workflow.md) · [v0.1.0 Release Notes](./docs/releases/v0.1.0.md)
|
|
47
|
+
|
|
48
|
+
## 一键初始化
|
|
49
|
+
|
|
50
|
+
从 npm 的不可变版本运行(Node.js 18+):
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx --yes --package openone-workflow-kit@0.1.0 openone-workflow-init --target . --tools codex,claude,cursor --yes
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
从源码 checkout 本地运行:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
node /path/to/openone-workflow-kit/bin/init-workspace.cjs --target .
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
也可以使用 shell wrapper:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
/path/to/openone-workflow-kit/install.sh . --tools codex,claude,cursor
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
如果你拿到的是 Git 地址或本地 tarball,见 [可分享安装方式](./docs/shareable-install.md)。该文档也说明了如何先验证 Registry 中的 `0.1.0` 再安装,避免把尚未发布的版本当作可用事实。
|
|
69
|
+
|
|
70
|
+
常用参数:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# 指定工具入口
|
|
74
|
+
node /path/to/openone-workflow-kit/bin/init-workspace.cjs --target . --tools codex,claude,cursor
|
|
75
|
+
|
|
76
|
+
# GitHub 包安装方式
|
|
77
|
+
npx --yes --package "git+https://github.com/bluecoast1379/openone-workflow-kit.git#v0.1.0" openone-workflow-init --target . --tools codex,claude,cursor
|
|
78
|
+
|
|
79
|
+
# 工具名支持 trea 别名,会自动归一为 trae
|
|
80
|
+
node /path/to/openone-workflow-kit/bin/init-workspace.cjs --target . --tools codex,trea,codebuddy
|
|
81
|
+
|
|
82
|
+
# 非交互模式,缺失资料会写入 workflow/INITIALIZATION_QUESTIONS.md
|
|
83
|
+
node /path/to/openone-workflow-kit/bin/init-workspace.cjs --target . --yes
|
|
84
|
+
|
|
85
|
+
# 只查看会生成什么,不写文件
|
|
86
|
+
node /path/to/openone-workflow-kit/bin/init-workspace.cjs --target . --dry-run
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 初始化器会做什么
|
|
90
|
+
|
|
91
|
+
1. 扫描目标工作区本地文件和目录,识别代码仓库、技术栈线索、项目资料、UI 规范、前后端规范和测试规范。
|
|
92
|
+
2. 生成 `workflow/team-profile.yaml`,只记录本地路径、工具选择、技术栈和缺失项,不上传任何资料。
|
|
93
|
+
3. 如果必要资料缺失:
|
|
94
|
+
- 交互式终端:逐项提问。
|
|
95
|
+
- 非交互模式:生成 `workflow/INITIALIZATION_QUESTIONS.md`。
|
|
96
|
+
4. 生成跨工具入口:
|
|
97
|
+
- Codex: `AGENTS.md`、`.codex/prompts/`
|
|
98
|
+
- Claude Code: `CLAUDE.md`、`.claude/commands/`
|
|
99
|
+
- Cursor: `.cursor/rules/` 和 `.cursor/commands/`
|
|
100
|
+
- Copilot: `.github/copilot-instructions.md`
|
|
101
|
+
- CodeBuddy / Kiro / Trae: 各自 `instructions.md`
|
|
102
|
+
5. 初始化器本身不执行远程 Git、push、构建部署或数据库写入。生成后的个人工作流允许 agent 在范围明确且工作树干净时执行本地分支命名、创建、commit、tag 和本地 merge;远程 push、release、部署和生产配置写入需要用户明确授权。
|
|
103
|
+
|
|
104
|
+
## 隐私与脱敏边界
|
|
105
|
+
|
|
106
|
+
本 kit 自身不应包含任何真实客户字段、内部系统地址、真实 URL 或凭证。对外分发前运行:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
node openone-workflow-kit/bin/check-sanitized.cjs
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
个人项目的业务介绍、项目资料、代码、UI 文件、前后端规范和测试规范只在本地被引用;初始化器不把这些资料发送到外部服务。
|
|
113
|
+
|
|
114
|
+
## 生成后的工作方式
|
|
115
|
+
|
|
116
|
+
初始化完成后,个人项目按 `AGENTS.md` 和 `workflow/core/commands/` 推进。
|
|
117
|
+
|
|
118
|
+
研发轨(每个需求一轮;`/new-feature` 时按 S/M/L 分级,S 档压缩为 定义完成→实现→验证 三步):
|
|
119
|
+
|
|
120
|
+
1. `/new-feature`(S/M/L 复杂度分级)
|
|
121
|
+
2. `/01-需求讨论`(存量行为先读 `specs/`)
|
|
122
|
+
3. `/澄清`(按需:≤5 问消融歧义,答案写回文档)
|
|
123
|
+
4. `/02-产品文档`
|
|
124
|
+
5. `/02B-UI设计`(含体验预算)
|
|
125
|
+
6. `/03-技术架构`(含数据流/状态机草案、规范提取到 `workflow/standards/`)
|
|
126
|
+
7. `/06-测试用例`(风险驱动,Oracle-ready)
|
|
127
|
+
8. `/定义完成`(把 01-06 编译成完成合同:数据流、失败路径、质量预算、验收 Oracle、术语表、影响边界;Definition Lint 通过并经用户确认后冻结)
|
|
128
|
+
9. `/一致性检查`(实现前只读交叉检查)
|
|
129
|
+
10. `/交付至完成`(在合同范围内自主循环 实现→验证→修复→复验 直到 blocking Oracle 全绿或精确阻塞),或手动 `/04-代码实现`、`/04A`、`/04B` → `/05-代码审查` → `/07-测试执行`
|
|
130
|
+
11. `/08-发布准备`(发布准入 = blocking Oracle 全 PASS)
|
|
131
|
+
12. `/09-发布执行`
|
|
132
|
+
13. `/10-复盘总结`(行为增量回写 `specs/` living specs)
|
|
133
|
+
|
|
134
|
+
商业化轨(每个产品一份基线 + 周期复盘):
|
|
135
|
+
|
|
136
|
+
1. `/new-product`
|
|
137
|
+
2. `/B1-业务定位`(可用 `/B1-B8-商业化准备` 一次性串联 B1 到 B8)
|
|
138
|
+
3. `/B2-商业模式`
|
|
139
|
+
4. `/B3-PMF与客户画像`
|
|
140
|
+
5. `/B4-场景与购买旅程`
|
|
141
|
+
6. `/B5-渠道漏斗映射`
|
|
142
|
+
7. `/B6-营销获客策略`
|
|
143
|
+
8. `/B7-营销预算`
|
|
144
|
+
9. `/B8-渠道执行策略`
|
|
145
|
+
10. `/B9-策略复盘`(周期执行:建议周检视指标、月度策略复盘、季度定位校准)
|
|
146
|
+
|
|
147
|
+
两轨衔接:`/01`、`/02` 读取定位、ICP 与场景基线;`/08`、`/09` 对照 B5/B8 准备发布营销材料和分发清单;`/10` 的增长信号回流 `/B9`;B8 的营销工程需求(landing、SEO 页面、埋点)通过 `/new-feature` 进入研发轨。
|
|
148
|
+
|
|
149
|
+
业务代码修改必须先通过功能分支闸门、阶段闸门和并行开发隔离检查;M/L 档需求还必须有已冻结且 Definition Lint 通过的完成合同(S 档为迷你合同)。涉及 UI 或前端的功能必须先完成 `/02B-UI设计`,或记录用户明确授权的范围有限设计豁免。文档分析和初始化不等于授权实现代码。商业化轨只产出文档和清单:对外发布、投放、cold outreach 必须由用户明确授权或自行执行,市场结论必须做证据分级、不得编造数据。
|
|
150
|
+
|
|
151
|
+
完成合同可用内置校验器检查结构:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
node openone-workflow-kit/bin/check-contract.cjs features/<feature>/00-完成合同.md
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
初始化器还会在目标工作区生成 `workflow/constitution.md`(跨需求不可协商原则)、`workflow/standards/`(个人规范层)和 `specs/`(已实现行为的 living specs)。
|
|
158
|
+
|
|
159
|
+
个人版迁移了 gstack 指南中的独立开发者发布经验:`main` / `prod` 双分支、本地集成、语义化 tag、扩展/CLI/桌面应用发布清单、发布后文档和复盘。agent 可以执行本地 git 分支、commit、tag、merge;远程 push、GitHub release、商店提交、部署和生产配置写入需要用户明确授权。
|
|
160
|
+
|
|
161
|
+
## 维护建议
|
|
162
|
+
|
|
163
|
+
- 通用规则只改 `workflow/core`。
|
|
164
|
+
- 个人项目特化配置只改 `workflow/team-profile.yaml`。
|
|
165
|
+
- 工具入口由初始化器或 adapter 生成,不把业务规则硬编码到单个工具里。
|
|
166
|
+
- 对外发布前先跑脱敏检查,再由人工复核许可证、示例和文档。
|
|
167
|
+
|
|
168
|
+
## 开源协作
|
|
169
|
+
|
|
170
|
+
- 贡献说明见 [CONTRIBUTING.md](./CONTRIBUTING.md)。
|
|
171
|
+
- 安全报告说明见 [SECURITY.md](./SECURITY.md)。
|
|
172
|
+
- 行为准则见 [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)。
|
|
173
|
+
- GitHub issue 和 PR 模板位于 `.github/`。
|
|
174
|
+
|
|
175
|
+
## 本地验证
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
cd /path/to/openone-workflow-kit
|
|
179
|
+
npm run check
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
该命令会执行脚本语法检查、starter kit 脱敏检查和临时目录 smoke test。
|
|
183
|
+
|
|
184
|
+
## 本地打包
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
cd /path/to/openone-workflow-kit
|
|
188
|
+
npm run build:release
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
该命令会在 `dist/` 下生成本地 tarball 和 `RELEASE_MANIFEST.md`。它不创建远程仓库、不 push、不打 tag、不执行 npm publish。
|
|
192
|
+
|
|
193
|
+
远程发布步骤见 [手动发布指南](./docs/manual-publish.md)。维护本 kit 自身时,push、tag、npm publish 仍应由维护者明确授权。
|
|
194
|
+
|
|
195
|
+
维护者发布、接收方验收和支持边界见 [维护者交接](./docs/maintainer-handoff.md)。
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 安全策略
|
|
2
|
+
|
|
3
|
+
## 支持版本
|
|
4
|
+
|
|
5
|
+
公开项目默认支持最新发布版本。安全修复优先进入默认分支,再由维护者手动发布。
|
|
6
|
+
|
|
7
|
+
## 报告漏洞
|
|
8
|
+
|
|
9
|
+
不要在公开 issue 中提交密钥、凭证、私有 URL、客户数据、私有源码、日志、数据库导出或生产配置。
|
|
10
|
+
|
|
11
|
+
请通过仓库维护者指定的私有渠道报告安全问题,并只提供定位问题所需的最小上下文。
|
|
12
|
+
|
|
13
|
+
## 范围
|
|
14
|
+
|
|
15
|
+
本项目关注:
|
|
16
|
+
|
|
17
|
+
- 初始化器写入了不应写入的私有内容;
|
|
18
|
+
- 脱敏检查遗漏明显敏感模式;
|
|
19
|
+
- 生成的 adapter 削弱了 workflow 硬闸门;
|
|
20
|
+
- 文档引导用户执行不安全的自动远程操作。
|
|
21
|
+
|
|
22
|
+
不在范围内:
|
|
23
|
+
|
|
24
|
+
- 用户手动改坏生成文件后的误用;
|
|
25
|
+
- 目标团队自己的业务代码缺陷;
|
|
26
|
+
- 目标团队工具或插件本身的漏洞;
|
|
27
|
+
- 未经授权上传到 issue、PR 或讨论区的私有数据。
|
|
28
|
+
|
|
29
|
+
## 脱敏检查
|
|
30
|
+
|
|
31
|
+
发布或分享前必须运行:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm run check
|
|
35
|
+
npm run build:release
|
|
36
|
+
node bin/check-sanitized.cjs --extra-banned <private-denylist-file>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`private-denylist-file` 必须放在 starter kit 外部,不要提交到仓库。
|