@pieai/pro-gov 0.4.4 → 0.4.5

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.
@@ -221,7 +221,7 @@ Add:
221
221
  - AI-in-the-Loop rules linked from the project's external shared-rule source
222
222
  - canon/provenance/archive rules in `docs/policy/best-practice-for-this-project.md`
223
223
 
224
- Do not add engineering TDD workflow plugins or Directed Development by default.
224
+ Do not add engineering test workflow plugins by default.
225
225
  Use `capture-learning` only for a real reusable lesson that belongs in that
226
226
  workspace.
227
227
 
@@ -30,9 +30,9 @@ work; tools and skills add capabilities only when their narrow trigger matches.
30
30
  | `@pieai/doc-gov` | required | Governed-document and router validation |
31
31
  | mattpocock/skills | available | Optional specialist toolbox; no bootstrap or workflow owner |
32
32
  | `capture-learning` | available | Save a verified reusable lesson after completed work |
33
- | Superpowers | not installed | Retired mandatory workflow plugin |
34
- | Compound Engineering | not installed | Retired; native PGS capture keeps the useful learning loop |
35
- | Ponytail | not installed | Retired global mode/hooks; ordinary engineering judgment stays lean |
33
+ | Superpowers | do not install | Retired mandatory workflow plugin |
34
+ | Compound Engineering | do not install | Retired; native PGS capture keeps the useful learning loop |
35
+ | Ponytail | do not install | Retired global mode/hooks; ordinary engineering judgment stays lean |
36
36
 
37
37
  Before non-trivial work:
38
38
 
@@ -8,8 +8,6 @@ required:
8
8
  source: external shared-rule SSOT
9
9
  agents_routing: docs/governance/agents-routing/doc-only-v0.9.md
10
10
  current_work: docs/reference/execution/current-work.md
11
- optional:
12
- directed_development: false
13
11
  project_local_required:
14
12
  - docs/policy/best-practice-for-this-project.md
15
13
  - canon/provenance/approval boundaries
@@ -14,7 +14,6 @@ Use for non-runtime projects: IP development, AI media production, research vaul
14
14
  ## Does Not Include By Default
15
15
 
16
16
  - engineering-runtime agents routing
17
- - Directed Development
18
17
  - engineering TDD workflow plugins
19
18
  - behavior-critical code lanes
20
19
 
@@ -9,7 +9,6 @@ required:
9
9
  agents_routing: docs/governance/agents-routing/engineering-runtime-v0.9.md
10
10
  current_work: docs/reference/execution/current-work.md
11
11
  optional:
12
- directed_development: integrations/directed-development.md
13
12
  mattpocock_skills: integrations/mattpocock-skills.md
14
13
  project_local_required:
15
14
  - docs/policy/best-practice-for-this-project.md
@@ -9,7 +9,6 @@ Use for code-heavy projects: apps, games, runtimes, services, browser products,
9
9
  - `docs/governance/ssot-v0.9.md`
10
10
  - external AI-in-the-Loop policy linked by target projects under `docs/policy/shared-rules/ai-in-the-loop.md`
11
11
  - `docs/governance/agents-routing/engineering-runtime-v0.9.md`
12
- - `integrations/directed-development.md`
13
12
  - `integrations/mattpocock-skills.md`
14
13
  - starter `docs/governance/` and `docs/policy/` templates
15
14
 
@@ -40,11 +40,9 @@
40
40
 
41
41
  - Name this project's adopted profile: `engineering-runtime` or `doc-only`.
42
42
  - Point to the chosen agents-routing file from `docs/governance/agents-routing/`.
43
- - Codex and this router own normal execution. Optional skills run only when their own narrow trigger directly matches the selected lane.
44
- - mattpocock/skills may remain available as an unchanged shared toolbox; there is no bootstrap skill or mandatory workflow owner.
45
43
  - Before non-trivial work, use Learning Recall. After verified work, use `capture-learning` only when a non-obvious reusable lesson exists.
46
44
  - Do not install Stop/SubagentStop workflow reminder hooks.
47
- - Doc-only projects should say that engineering TDD and Directed Development are not enabled by default.
45
+ - Doc-only projects should say that engineering test workflows are not enabled by default.
48
46
 
49
47
  <!-- PGS-ROUTER:END -->
50
48
 
@@ -24,7 +24,7 @@ superseded_by: null
24
24
 
25
25
  Shared routing algorithm for non-runtime projects such as AI media, IP development, research, and asset governance workspaces.
26
26
 
27
- This route does not use engineering TDD or Directed Development by default.
27
+ This route does not use engineering test workflows by default.
28
28
 
29
29
  ## Core Flow
30
30
 
@@ -52,7 +52,6 @@ flowchart TD
52
52
  ## Rules
53
53
 
54
54
  - Do not ask whether the task needs TDD unless the project has actual runtime code.
55
- - Do not trigger Directed Development unless the project explicitly opts in.
56
55
  - Prefer SSOT, provenance, and approval clarity over engineering ceremonies.
57
56
  - Use AI-in-the-Loop for evidence: inspect source, change one thing, verify the target document or asset path.
58
57
 
@@ -76,8 +75,7 @@ written as Markdown. Governed docs record decisions, plans, references, policies
76
75
  and workspace truth. Product artifacts stay in the project package or workbench
77
76
  unless the project explicitly opts them into doc-gov.
78
77
 
79
- ## External Workflow Boundary
78
+ ## Host Adapter Boundary
80
79
 
81
- This route runs before optional skill packs.
82
80
  Host-specific adapters such as `CLAUDE.md` may adapt the route for a specific AI
83
81
  client, but they must not replace the project `AGENTS.md` route.
@@ -32,12 +32,8 @@ This file decides **how to choose a workflow**, not what the project is currentl
32
32
  flowchart TD
33
33
  A["Task arrives"] --> B["Read project router and current work"]
34
34
  B --> C["Classify with local lane profile"]
35
- C --> D{"Mixed / cross-domain / interdependent product work?"}
36
- D -- "yes" --> E["Use Directed Development to split ordered DD Blocks"]
37
- E --> C
38
- D -- "no" --> F["Enter local lane"]
39
- F --> G["Use a narrowly matched skill only when helpful"]
40
- G --> H["Use AI-in-the-Loop evidence cycle"]
35
+ C --> F["Enter local lane"]
36
+ F --> H["Use AI-in-the-Loop evidence cycle"]
41
37
  H --> I["Record evidence in doc-gov"]
42
38
  ```
43
39
 
@@ -45,16 +41,6 @@ flowchart TD
45
41
 
46
42
  Use this router only to pick depth and workflow. Do not use it as a project roadmap.
47
43
 
48
- ## DD Trigger
49
-
50
- Use Directed Development only when all are true:
51
-
52
- - the task is product work
53
- - it crosses local lanes or shared contracts
54
- - sequencing risk makes a flat plan unsafe
55
-
56
- Do not trigger DD for broad mechanical edits, renames, formatting, or ordinary docs migration.
57
-
58
44
  ## Project-Local Lane Profile
59
45
 
60
46
  Every engineering project must define its own lane profile in `AGENTS.md` or `docs/policy/best-practice-for-this-project.md`.
@@ -68,12 +54,7 @@ Typical lanes:
68
54
 
69
55
  But the shared router must not define project-specific lanes.
70
56
 
71
- ## External Workflow Boundary
72
-
73
- This route runs before optional skill packs such as mattpocock/skills. Skills
74
- may provide reviews, browser workflows, PRD/issue shaping, or domain-modeling
75
- artifacts, but their own narrow trigger must match the selected lane. No skill
76
- pack owns every engineering task.
57
+ ## Host Adapter Boundary
77
58
 
78
59
  Host-specific adapters such as `CLAUDE.md` may adapt the route for a specific AI
79
60
  client, but they must not replace the project `AGENTS.md` route.
package/dist/cli.js CHANGED
@@ -93,6 +93,7 @@ function createNpxSkillsMaintenancePlan(options) {
93
93
  if (options.operation === "update") {
94
94
  assertNoReportedPartialUpdateFailure(result.stdout, result.stderr);
95
95
  }
96
+ assertNoDeprecatedMattSkills(tempRoot);
96
97
  const after = snapshotFiles(tempRoot);
97
98
  const changes = diffSnapshots(before, after);
98
99
  return {
@@ -117,6 +118,16 @@ ${stderr}`.replace(/\u001B\[[0-?]*[ -/]*[@-~]/g, "");
117
118
  throw new Error(`npx skills update reported a partial failure: ${failure[0]}`);
118
119
  }
119
120
  }
121
+ function assertNoDeprecatedMattSkills(npxRoot) {
122
+ const lockPath = join3(npxRoot, "skills-lock.json");
123
+ const lock = JSON.parse(readFileSync2(lockPath, "utf8"));
124
+ const deprecated = Object.entries(lock.skills ?? {}).filter(
125
+ ([, entry]) => entry.source === "mattpocock/skills" && entry.skillPath?.startsWith("skills/deprecated/")
126
+ ).map(([name]) => name).sort();
127
+ if (deprecated.length > 0) {
128
+ throw new Error(`npx skills plan contains deprecated mattpocock skills: ${deprecated.join(", ")}`);
129
+ }
130
+ }
120
131
  function assertNativeNpxRoot(npxRoot) {
121
132
  if (!existsSync3(join3(npxRoot, "skills-lock.json"))) {
122
133
  throw new Error(`npx skills root is missing skills-lock.json: ${npxRoot}`);
@@ -2441,6 +2452,10 @@ function formatProjectLensAuditCheckText(result) {
2441
2452
  function formatProjectLensInspection(report) {
2442
2453
  return [
2443
2454
  `target: ${report.targetDir}`,
2455
+ `scan-scope: ${report.scanScope.mode}`,
2456
+ `candidate-files: ${report.scanScope.candidateFileCount}`,
2457
+ `included-files: ${report.scanScope.includedFileCount}`,
2458
+ `excluded-files: ${report.scanScope.excludedFileCount}`,
2444
2459
  `ai-entry-files: ${formatList(report.aiEntryFiles)}`,
2445
2460
  `ai-config-files: ${formatList(report.aiConfigFiles)}`,
2446
2461
  `package-scripts: ${formatList(report.packageJson?.scripts ?? [])}`,
@@ -2462,6 +2477,10 @@ function renderProjectLensMarkdownReport(report) {
2462
2477
  `- Target: \`${report.targetDir}\``,
2463
2478
  `- Generated: ${(/* @__PURE__ */ new Date()).toISOString()}`,
2464
2479
  "- Scope: local read-only evidence for AI-assisted project review",
2480
+ `- Evidence mode: ${report.scanScope.mode}`,
2481
+ `- Candidate files: ${report.scanScope.candidateFileCount}`,
2482
+ `- Included files: ${report.scanScope.includedFileCount}`,
2483
+ `- Excluded vendor/cache files: ${report.scanScope.excludedFileCount}`,
2465
2484
  "",
2466
2485
  "## AI Entry Files",
2467
2486
  "",
@@ -2522,11 +2541,20 @@ var ignoredDirectories = /* @__PURE__ */ new Set([
2522
2541
  ]);
2523
2542
  function scanProjectLensTarget(targetDir, options = {}) {
2524
2543
  const largeFileBytes = options.largeFileBytes ?? 5e4;
2525
- const files = listProjectFiles(targetDir);
2526
- const markdownFiles = files.filter((file) => file.endsWith(".md"));
2544
+ const candidateFiles = listProjectFiles(targetDir);
2545
+ const files = candidateFiles.filter(isFirstPartyEvidenceFile);
2546
+ const markdownFiles = files.filter(
2547
+ (file) => file.startsWith("docs/") && file.endsWith(".md")
2548
+ );
2527
2549
  const packageJson = readPackageJson(targetDir);
2528
2550
  return {
2529
2551
  targetDir,
2552
+ scanScope: {
2553
+ mode: "first-party",
2554
+ candidateFileCount: candidateFiles.length,
2555
+ includedFileCount: files.length,
2556
+ excludedFileCount: candidateFiles.length - files.length
2557
+ },
2530
2558
  aiEntryFiles: ["AGENTS.md", "CLAUDE.md"].filter(
2531
2559
  (file) => existsSync17(join17(targetDir, file))
2532
2560
  ),
@@ -2575,10 +2603,31 @@ function runGit(targetDir, args) {
2575
2603
  return { ok: true, stdout: result.stdout.trim() };
2576
2604
  }
2577
2605
  function listProjectFiles(targetDir) {
2606
+ const gitFiles = runGit(targetDir, [
2607
+ "ls-files",
2608
+ "--cached",
2609
+ "--others",
2610
+ "--exclude-standard",
2611
+ "-z"
2612
+ ]);
2613
+ if (gitFiles.ok) {
2614
+ return gitFiles.stdout.split("\0").filter(Boolean).map(toUnixPath4).filter((file) => existsSync17(join17(targetDir, file))).sort();
2615
+ }
2578
2616
  const files = [];
2579
2617
  collectFiles2(targetDir, targetDir, files);
2580
2618
  return files.sort();
2581
2619
  }
2620
+ var excludedEvidencePrefixes = [
2621
+ ".agents/manual-skills/",
2622
+ ".agents/skills/",
2623
+ "agent-assets/skills/npx-skills/",
2624
+ "third-party/",
2625
+ "third_party/",
2626
+ "vendor/"
2627
+ ];
2628
+ function isFirstPartyEvidenceFile(file) {
2629
+ return !excludedEvidencePrefixes.some((prefix) => file.startsWith(prefix));
2630
+ }
2582
2631
  function collectFiles2(rootDir, currentDir, files) {
2583
2632
  if (!existsSync17(currentDir)) return;
2584
2633
  for (const entry of readdirSync7(currentDir, { withFileTypes: true })) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pieai/pro-gov",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "Project-level distribution kit for Project Governance System.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -35,7 +35,7 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@pieai/doc-gov": "^0.4.4"
38
+ "@pieai/doc-gov": "^0.4.5"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "24.13.2",
@@ -1,339 +0,0 @@
1
- ---
2
- id: REF-AGENT-WORKFLOW-METHODOLOGY-COMPARISON
3
- title: Agent Workflow Methodology Comparison
4
- type: reference
5
- status: superseded
6
- canonical: false
7
- owner: project
8
- created: 2026-07-06
9
- last_reviewed: 2026-07-06
10
- domain: adoption
11
- tags:
12
- - agent-workflows
13
- - superpowers
14
- - compound-engineering
15
- - mattpocock-skills
16
- - wayfinder
17
- pinned: false
18
- related:
19
- - REF-PUBLIC-RELEASE-CHECKLIST
20
- - REF-DOWNSTREAM-PROJECT-REGISTRY
21
- superseded_by: REF-RECOMMENDED-AGENT-TOOLING
22
- ---
23
-
24
- # Agent Workflow Methodology Comparison
25
-
26
- > Historical snapshot only. The current decision is documented in
27
- > [Recommended Agent Tooling](recommended-agent-tooling.md): Superpowers,
28
- > Compound Engineering, and Ponytail are retired from the installed PGS stack;
29
- > Matt skills remain a trigger-based library, and `capture-learning` preserves
30
- > the small reusable-learning loop. The older analysis below is retained as
31
- > decision history, not current guidance.
32
-
33
- 本文比较 4 套 AI agent 工作方法,观察时间点是 2026-07-06:
34
-
35
- 1. **Superpowers**
36
- 2. **Compound Engineering**
37
- 3. **Matt Pocock skills 主流程**
38
- 4. **Matt Pocock Wayfinder**
39
-
40
- 小学生版本:这 4 套东西都不是“更聪明的魔法咒语”。它们更像 4 个不同的帮手。
41
-
42
- - Superpowers 像工地施工队长。
43
- - Compound Engineering 像厨师的复盘菜谱本。
44
- - Matt 主流程像采访员、产品经理、拆票员三个人排队帮你。
45
- - Wayfinder 像走进大雾森林前的画地图的人。
46
-
47
- ## 版本和证据
48
-
49
- 这是一个时间点快照,不是永久真理。Wayfinder 现在变化尤其快。
50
-
51
- | 系统 | 本次观察到的版本或来源 | 证据 |
52
- | --- | --- | --- |
53
- | PGS | 本地 package 版本 `0.4.0` | `package.json`,2026-07-06 检查 |
54
- | Superpowers | 本机 Codex 插件 `6.1.1` | 本地 `.codex/plugins/cache/superpowers-dev/superpowers/6.1.1`;上游项目:[obra/superpowers](https://github.com/obra/superpowers) |
55
- | Compound Engineering | 本机插件 `3.18.0` | 本地 `.codex/plugins/cache/compound-engineering-plugin/compound-engineering/3.18.0`;上游项目:[EveryInc/compound-engineering-plugin](https://github.com/EveryInc/compound-engineering-plugin) |
56
- | Matt Pocock skills | PGS 本地 lock 记录 GitHub 来源和 hash,不记录 semver | 上游项目:[mattpocock/skills](https://github.com/mattpocock/skills);Skill Vault 在 2026-07-05 显示 `1.0.31`、commit `66f92b6` |
57
- | Wayfinder | 属于 `mattpocock/skills`,2026-07-06 仍在 `skills/in-progress/wayfinder` | 上游文件:[Wayfinder SKILL.md](https://github.com/mattpocock/skills/blob/main/skills/in-progress/wayfinder/SKILL.md);GitHub Actions 显示 Wayfinder 已连续多次发布到 Release #46 |
58
-
59
- 重要提醒:PGS 本地 `wayfinder` 已在 2026-07-07 通过 `pro-gov assets npx update --skill wayfinder --plan` 更新到包含 **"Plan, don't do"** 和 destination 说明的新版。Wayfinder 仍处在高流动期,后续如果继续升级,需要重新复查这篇文档。
60
-
61
- ## 一句话结论
62
-
63
- PGS 最稳的组合是:
64
-
65
- - **Superpowers** 继续当默认工程流程负责人。
66
- - **Compound Engineering** 继续当默认复利记录和经验沉淀工具。
67
- - **Matt 主流程** 用在“想法还模糊,需要问清楚、写 PRD、拆 issue”的时候。
68
- - **Wayfinder** 只用在“大到一个 session 装不下、前路还在雾里”的任务上。
69
-
70
- Wayfinder 暂时不应该自动启动。它很有潜力,但现在更像侦察兵,不像自动驾驶车。要用它,最好满足 4 个条件:用户明确叫它、目的地说清楚、issue tracker 支持它的地图/子票规则、关键节点有人类确认。
71
-
72
- ## 两个贯穿例子
73
-
74
- 为了更好懂,下面一直用两个例子:
75
-
76
- - **小安要开发一个 App。** 可能只是一个习惯打卡小工具,也可能是一个很大的 EMS 管理系统。
77
- - **小宁要写一本小说。** 可能只是一本短篇推理,也可能是一个多卷本奇幻系列。
78
-
79
- ## Superpowers:工地施工队长
80
-
81
- Superpowers 像工地施工队长。施工队长不会一上来就让人搬砖。他会先问:要建什么?图纸在哪里?怎么验收?有没有安全检查?
82
-
83
- 小安做 App 时,Superpowers 会帮:
84
-
85
- - 问清楚这个功能到底要解决什么问题。
86
- - 写计划。
87
- - 尽量用 TDD,先写测试再实现。
88
- - 完工前检查测试、review、分支状态。
89
-
90
- 小宁写小说时,Superpowers 也能帮一点,比如安排写作计划。但它脑子里更多是“软件工程施工”。如果小宁只是想探索人物和情绪,Superpowers 可能显得有点硬。
91
-
92
- 最适合:工程实现、调 bug、测试验证、分支收尾。
93
-
94
- PGS 判断:Superpowers 继续做默认工程流程负责人。PGS 已在 [integrations/superpowers.md](../../../integrations/superpowers.md) 里这样定位。
95
-
96
- ## Compound Engineering:厨师的复盘菜谱本
97
-
98
- Compound Engineering 像厨师的菜谱本。厨师这次做菜发现“火候应该小一点”“这个酱汁可以提前一天做”,就记下来。下次做同类菜,就不用重新踩坑。
99
-
100
- 小安做 App 时,CE 会帮:
101
-
102
- - 修完一个难部署 bug 后,把可复用经验记下来。
103
- - 下次遇到类似问题,AI 可以先读以前的经验。
104
- - CE 也有计划、review、debug 等完整流程,但 PGS 默认不让它接管整条开发线。
105
-
106
- 小宁写小说时,CE 可以记录写作经验,比如“多卷本小说需要先做时间线表”。但如果只是自由创作,完整 CE 流程可能也会显得太工程化。
107
-
108
- 最适合:把一次工作变成下一次工作的优势。
109
-
110
- PGS 判断:默认只用 **Compound Gate** 做经验沉淀。完整 CE 流程必须用户明确要求。见 [integrations/compound-engineering.md](../../../integrations/compound-engineering.md)。
111
-
112
- ## Matt 主流程:采访员 + 产品经理 + 拆票员
113
-
114
- Matt 主流程像 3 个人接力:
115
-
116
- 1. 采访员先不停追问,把模糊想法问清楚。
117
- 2. 产品经理把答案整理成 PRD。
118
- 3. 拆票员把 PRD 切成一个个能独立完成的小 issue。
119
-
120
- 小安做 App 时:
121
-
122
- - `/grill-with-docs` 像采访员,边问边更新项目上下文。
123
- - `/to-prd` 像产品经理,把讨论整理成 PRD。
124
- - `/to-issues` 像拆票员,把 PRD 拆成竖切 issue。
125
- - `/implement` 像工程执行员,拿一个 issue 做 TDD、review、commit。
126
-
127
- 小宁写小说时:
128
-
129
- - `/grill-me` 可以问清楚题材、主角、冲突、结尾。
130
- - `/to-prd` 可以变成故事圣经或写作 brief。
131
- - `/to-issues` 可以变成章节卡、设定任务、资料研究任务。
132
- - 但它的形状还是偏“产品开发”,所以对纯文学创作可能有点像用项目管理工具写诗。
133
-
134
- 最适合:把模糊需求变成可保存、可拆分、可执行的东西。
135
-
136
- PGS 判断:Matt skills 可以完整安装、原样使用,但它产生的原生产物不应该被 PGS 乱改。PGS 不应该为了 Doc Gov 给它的产物硬加 frontmatter。正确做法是:Matt 产物保留原味;只有当人明确决定“这个东西要升级为 PGS 治理真相”时,才另建或更新 PGS 文档。见 [integrations/mattpocock-skills.md](../../../integrations/mattpocock-skills.md)。
137
-
138
- ## Wayfinder:大雾森林里的画地图的人
139
-
140
- Wayfinder 像你站在一片大雾森林前。你知道森林另一边可能有城堡,但不知道路在哪里,也不知道哪些桥断了。这时最聪明的事不是冲进去盖房子,而是先画地图。
141
-
142
- 小安做一个小习惯 App:
143
-
144
- - 不建议用 Wayfinder。太重了。Matt 主流程或 Superpowers 就够。
145
-
146
- 小安做一个大型 EMS 系统:
147
-
148
- - Wayfinder 可以创建一个 map issue。
149
- - 然后创建子票,比如“决定权限模型”“研究 EMS 审计要求”“原型验证派单时间线 UI”“追问升级规则”。
150
- - 每个 session 只解决一个票,把答案记回地图。
151
-
152
- 小宁写短篇推理:
153
-
154
- - 一般不需要 Wayfinder。
155
-
156
- 小宁写多卷奇幻系列:
157
-
158
- - Wayfinder 很可能有用。它可以画出“魔法规则是否影响经济”“第二卷由谁推动主线”“结局前必须先决定哪些世界观问题”等地图。
159
- - 每张票解决一个大问题。
160
-
161
- 最适合:很大、很模糊、一个 session 装不下、下一步不清楚的工作。
162
-
163
- PGS 判断:Wayfinder 只能显式调用。用户说 `/wayfinder`,或者清楚表达“我要为一个大而不清楚的任务画地图”,再用。
164
-
165
- ## 总对比表
166
-
167
- | 维度 | Superpowers | Compound Engineering | Matt 主流程 | Wayfinder |
168
- | --- | --- | --- | --- | --- |
169
- | 小学生比喻 | 施工队长 | 复盘菜谱本 | 采访员 + 产品经理 + 拆票员 | 大雾地图师 |
170
- | 主要工作 | 把代码小心做出来 | 让下一次工作更容易 | 把想法变成 PRD / issue / code | 在未知里找到路线 |
171
- | 最适合规模 | 小到大的工程任务 | 重复出现的工程经验 | 中等复杂产品/功能 | 超大、模糊、多 session |
172
- | 主要产物 | 计划、测试、review、分支收尾 | `docs/solutions/**` 等经验文档 | `CONTEXT.md`、ADR、PRD、issue | 一个 map issue + 多个 child ticket |
173
- | 如何启动 | skill routing / session startup | 显式 CE skill 或 PGS Compound Gate | 通常显式 slash command | 显式 `/wayfinder` |
174
- | 人类角色 | 批准计划和关键选择 | 判断什么值得沉淀 | 回答采访、批准 issue 颗粒度 | 批准目的地、地图、下一步 |
175
- | 自主程度 | 中等 | PGS 默认低;完整 CE 时较高 | 中等 | 如果不设边界会偏高 |
176
- | 停止条件 | 测试、review、分支完成 | 学习记录完成或跳过 | PRD / issue / implementation 完成 | 路线清楚,没有更多必须先决定的问题 |
177
- | 最大优点 | 工程纪律强 | 真正复利 | 需求澄清和竖切很强 | 不假装大雾已经清楚 |
178
- | 最大风险 | 小任务可能仪式太重 | 用多了会变流程负担 | 可能偏重、偏线性 | 可能造太多票,或选错下一步 |
179
- | PGS 默认态度 | 默认工程负责人 | 默认复利尾巴 | 可选工具箱 | 显式侦察兵 |
180
-
181
- ## 外部证据和评论
182
-
183
- ### Wayfinder
184
-
185
- 一手来源:Wayfinder 自己说,它处理的是“一个 session 太大、路还在雾里”的工作。它会在 issue tracker 上建共享地图,然后一个 ticket 一个 ticket 解决,直到目的地路线清楚。最新版上游还明确说默认是 **Plan, don't do**:默认产出决策,不产出最终交付物,除非 map Notes 明确允许执行。来源:[Wayfinder SKILL.md](https://github.com/mattpocock/skills/blob/main/skills/in-progress/wayfinder/SKILL.md)。
186
-
187
- GitHub Actions 显示 Wayfinder 近期更新非常密集,包括 destination/purpose、deferred section、native blocking、assignment claiming、plan big work 等。来源:[mattpocock/skills Actions](https://github.com/mattpocock/skills/actions)。
188
-
189
- GitHub issue #450 报告了一个真实风险:Wayfinder 在 work-through-map 时没有充分追问资源冲突,导致一个部署任务影响了另一个已存在服务。来源:[Issue #450](https://github.com/mattpocock/skills/issues/450)。
190
-
191
- 用户提供的 2026-07-06 X 截图也显示两面性:有人觉得 Wayfinder 很震撼,但也观察到它可能继续执行错误的下一张票;Matt 回复说这不应该发生,听起来像 bug。这个证据说明:它很有潜力,但还不能当稳定自动驾驶。
192
-
193
- PGS 解释:Wayfinder 是侦察兵,不是总司令。
194
-
195
- ### Matt 主流程
196
-
197
- 一手来源:Matt README 说这些 skills 是小而可组合、可改造、用于真实工程,不是 vibe coding。它把 `/grill-with-docs`、`CONTEXT.md`、`/to-prd`、`/to-issues`、`/tdd`、`/code-review` 组合成一个流程。来源:[mattpocock/skills](https://github.com/mattpocock/skills)。
198
-
199
- 公开 `to-issues` 指南说,它会把 PRD 拆成可独立抓取的竖切 issue,并让用户批准颗粒度和依赖。来源:[AI Hero to-issues guide](https://www.aihero.dev/skills-to-issues)。
200
-
201
- 外部评论是“有用但可能重”。有 Reddit 用户说 Matt 风格的 GitHub issues / TDD / audit loop 质量好,但也担心每个小 issue 都耗时较多。来源:[Reddit discussion](https://www.reddit.com/r/PiCodingAgent/comments/1t2tm5c/am_i_overengineering_matt_pococks_ai_coding/)。
202
-
203
- 另一个公开写法认为,这套流程适合触达多个模块的 feature/refactor,但不能替代人的判断。来源:[Danny Shmueli writeup](https://dannyshmueli.com/2026/04/29/Matt-Pocock-Skills-Hermes-Subagents-Feature-Work/)。
204
-
205
- PGS 解释:Matt 主流程适合“把话问明白、把需求切小”。但不要为了治理洁癖去改它原生输出。
206
-
207
- ### Superpowers
208
-
209
- 一手来源:Superpowers 自称是基于 composable skills 和启动指令的软件开发方法论,覆盖 brainstorming、worktree、planning、subagent execution、TDD、debugging、review、verification。来源:[obra/superpowers](https://github.com/obra/superpowers)。
210
-
211
- Superpowers 6 发布说明称,它在作者测试中更快、更省 token,并支持或改进了多个 coding agent,包括 Codex。来源:[Superpowers 6 announcement](https://blog.fsck.com/2026/06/15/Superpowers-6/)。
212
-
213
- 社区评论也分两面。有些用户喜欢它前半段:澄清假设、写 spec、识别风险、做计划。也有人认为它对小任务会太重,甚至更耗用量。来源:[Reddit ClaudeCode thread](https://www.reddit.com/r/ClaudeCode/comments/1uk7dzk/fable_5_and_superpowers_plugin/) 和 [Reddit Codex thread](https://www.reddit.com/r/codex/comments/1sp7di6/have_any_of_you_guys_been_using_the_superpower/)。
214
-
215
- PGS 解释:Superpowers 仍然是最适合当默认工程负责人的,因为它端到端纪律强。但 PGS 需要保留轻量路径,小事不要被拖进大仪式。
216
-
217
- ### Compound Engineering
218
-
219
- 一手来源:CE 插件强调“每一次工程工作都应该让下一次更容易”,提供 `/ce-brainstorm`、`/ce-plan`、`/ce-code-review`、`/ce-compound` 等技能。来源:[EveryInc/compound-engineering-plugin](https://github.com/EveryInc/compound-engineering-plugin)。
220
-
221
- Every 的 Compound Engineering 指南强调 safety nets、agent-native environment、parallel work、plan as artifact。来源:[Compound Engineering guide](https://every.to/guides/compound-engineering)。
222
-
223
- Will Larson 的评论认为它是一个便宜、有用、值得试的实验,同时也提醒有些实践未来可能会被 agent harness 吸收。来源:[Lethain review](https://lethain.com/everyinc-compound-engineering/)。
224
-
225
- PGS 解释:CE 最珍贵的是“把经验留下来”。但如果 CE 和 Superpowers 同时想当整个流程的老板,AI 就像同时听两个教练喊口令,会乱。PGS 因此让 Superpowers 默认负责施工,让 CE 默认负责复盘。
226
-
227
- ## 用 Loopy 外骨骼检查
228
-
229
- `loopy` 技能说,一个好 loop 应该有 6 步:观察、选择、行动、验证、记录、重复或停止。它还要求有明确终点,比如成功、阻塞、需要批准、用尽、停滞。
230
-
231
- 把 4 套方法放进去看:
232
-
233
- | 系统 | 观察 | 选择 | 行动 | 验证 | 记录 | 停止 |
234
- | --- | --- | --- | --- | --- | --- | --- |
235
- | Superpowers | 强:会问、会读代码 | 强:会写计划 | 强:会实现 | 强:测试/review | 中:计划和 review 记录 | 强,但要真的跑验证 |
236
- | CE | 中:读任务上下文 | 中:CE plan/review | 中:可执行但 PGS 默认不用 | 中:review/check | 强:复利文档 | capture 很清楚,完整流程较重 |
237
- | Matt 主流程 | 强:grilling/docs | 强:PRD/issues | 强:implement | 强:TDD/code review | 强:context/ADR/PRD/issues | 中:依赖 smart context hygiene |
238
- | Wayfinder | 强:map/fog/tickets | 如果 frontier 对,就强 | 默认低:应该 plan,不应该 do | 中:依赖 ticket resolution 质量 | 强:map 和 resolution comments | 需要特别小心:一 session 一票 |
239
-
240
- Loopy 角度的 PGS 结论:Wayfinder 最大问题不是“不聪明”,而是“权限和刹车”。地图必须写清楚什么时候问人、什么时候停、什么时候绝对不执行。
241
-
242
- ## 五轮真实评估迭代
243
-
244
- ### 第 1 轮:先看 PGS 边界
245
-
246
- 问题:PGS 能不能引入 Wayfinder,而不让 4 套方法互相打架?
247
-
248
- 判断:可以,但每套方法要分工清楚。
249
-
250
- - Superpowers 负责默认工程施工。
251
- - CE 负责默认经验复利。
252
- - Matt 主流程负责需求澄清、PRD、issue 拆分。
253
- - Wayfinder 负责大雾任务的地图。
254
-
255
- 我否掉的方案:让 Wayfinder 自动替代 Matt 旧流程。这太激进,像把整个施工队换成一张地图。
256
-
257
- ### 第 2 轮:看 Wayfinder 上游原意
258
-
259
- 问题:Wayfinder 自己到底说它是什么?
260
-
261
- 判断:它不是更强的 `/implement`。它更像“路线发现”和“决策地图”。上游最新版还明确写了默认 plan,不默认 do。
262
-
263
- 这改变了推荐:Wayfinder 不应该直接拿来替代实现流程。
264
-
265
- ### 第 3 轮:看外部评论是不是只有夸
266
-
267
- 问题:大家是在无脑夸,还是有真实问题?
268
-
269
- 判断:两者都有。
270
-
271
- - 夸:有人觉得它能做以前不敢交给 AI 的大规划。
272
- - 风险:GitHub issue #450 和用户截图都说明,它可能在下一步选择或冲突追问上出错。
273
-
274
- 这让 PGS 不应该过早自动化采用。
275
-
276
- ### 第 4 轮:用 Loopy 查循环质量
277
-
278
- 问题:4 套方法哪个循环最完整?
279
-
280
- 判断:
281
-
282
- - Superpowers 和 Matt 主流程的“构建循环”更成熟。
283
- - CE 的“记录/复利循环”最强。
284
- - Wayfinder 的“观察/记录”很强,但“谁决定下一步”和“什么时候停止”需要额外护栏。
285
-
286
- 结论:Wayfinder 必须一 session 一票,chart map 后要人工确认,默认只做决策,不做执行。
287
-
288
- ### 第 5 轮:看 PGS 最小采用方式
289
-
290
- 问题:最小、稳妥、有价值的采用方式是什么?
291
-
292
- 判断:先写边界文档,不急着改运行规则。
293
-
294
- 如果后续要真正 operationalize Wayfinder,需要:
295
-
296
- 1. 保持 Matt skill pack 更新到包含最新版 Wayfinder 文案的版本。
297
- 2. 保持 PGS 中央 `docs/agents/issue-tracker.md` 有 Wayfinding operations。
298
- 3. 保持 Matt 原生产物不被 PGS 修改。
299
- 4. Doc Gov 继续忽略 Matt 原生产物,除非人工提升为治理文档。
300
- 5. 本地主控 AI 保留最终 merge / commit / push 权限。
301
-
302
- ## PGS 推荐路由
303
-
304
- | 场景 | 推荐用什么 |
305
- | --- | --- |
306
- | 小而明确的代码修复 | Superpowers,必要时直接 TDD |
307
- | 难 bug | Superpowers systematic debugging;有复用经验再 CE capture |
308
- | 现有 repo 里的模糊功能想法 | Matt `/grill-with-docs`,然后可能 `/to-prd`、`/to-issues` |
309
- | 已经有 PRD,需要拆票 | Matt `/to-issues` |
310
- | 单个 issue 要实现 | Matt `/implement` 或 Superpowers 实现流程,看用户怎么叫 |
311
- | 巨大、模糊、多 session 的任务 | Wayfinder |
312
- | 工作结束后有可复用经验 | CE `/ce-compound` 或 PGS fallback capture |
313
- | 小说、课程、非代码创作 | Matt grilling 或 Wayfinder;不要默认套 Superpowers 工程仪式 |
314
-
315
- ## 采用 Wayfinder 的护栏
316
-
317
- 如果 PGS 以后真正启用 Wayfinder,请保留这些护栏:
318
-
319
- 1. **只能显式启动。** 用户说 `/wayfinder`,或清楚要求“给大任务画地图”。
320
- 2. **必须说清目的地。** 没有目的地的地图,只是一堆便利贴。
321
- 3. **一个 session 只解决一张票。** 这样不会跑飞,也保护上下文。
322
- 4. **默认只计划,不执行。** 除非 map Notes 明确写这个 effort 包含执行。
323
- 5. **第一次 chart map 后要人工确认。** 不要一口气造几十张票然后自动往下冲。
324
- 6. **Matt 原生产物保持原味。** 不要为了 PGS Doc Gov 给 map tickets、PRD、scratch、context docs 硬加 frontmatter。
325
- 7. **要升级为 PGS 真相时,另行提升。** 也就是新建或更新受治理的 PGS 文档,而不是改原生产物。
326
- 8. **issue tracker 必须保留规则。** PGS 中央的 `docs/agents/issue-tracker.md` 必须包含 Wayfinding operations;正式跑之前先检查它还在。
327
-
328
- ## 最终建议
329
-
330
- PGS 应该支持 Wayfinder,但不要把它封王。
331
-
332
- 最好的搭配是:
333
-
334
- - **Superpowers**:平时工程施工。
335
- - **Matt 主流程**:把模糊想法问清楚、写成 PRD、拆成 issue。
336
- - **Wayfinder**:遇到巨大迷雾任务时先画地图。
337
- - **CE**:工作结束后把可复用经验存下来。
338
-
339
- 用小孩能懂的话说:Superpowers 帮你盖树屋,Matt 主流程问清楚你想要什么树屋,Wayfinder 在你连哪棵树能爬都不知道时先画森林地图,CE 把“梯子怎么做更结实”记进小本本,下次少摔一次。
@@ -1,11 +0,0 @@
1
- # Compound Engineering Integration (Retired)
2
-
3
- PGS no longer requires the Compound Engineering plugin or a Compound Gate.
4
-
5
- The retained idea is small: verified work sometimes produces a reusable lesson.
6
- The PGS-owned `capture-learning` skill decides whether a lesson is worth keeping,
7
- checks for duplicates, and writes it through `pro-gov learn capture`. There are
8
- no Stop hooks, modes, plugin configuration, or mandatory final-report ceremony.
9
-
10
- Historical `docs/solutions/**` records remain valid inputs to
11
- `pro-gov learn recall`.
@@ -1,44 +0,0 @@
1
- # Directed Development Integration
2
-
3
- Directed Development is an optional workflow for mixed, cross-domain, interdependent product work.
4
-
5
- It is not the default for every task.
6
-
7
- It is a small PGS routing rule for cases where product work must be split into
8
- ordered dependency-aware Blocks before execution.
9
-
10
- ## Boundary
11
-
12
- Directed Development may define:
13
-
14
- - ordered DD Blocks
15
- - dependencies between Blocks
16
- - BDD-style acceptance scenarios
17
- - verification gates
18
-
19
- Directed Development must not define:
20
-
21
- - artifact locations
22
- - optional skill invocation rules
23
- - project document paths
24
- - project lane names
25
- - runtime truth
26
-
27
- Those remain owned by the project and doc-gov.
28
-
29
- Agents routing decides whether this workflow applies. Directed Development does
30
- not replace the project router.
31
-
32
- BDD-style scenarios are allowed only as acceptance language for a DD Block. They
33
- do not turn Directed Development into a default BDD ceremony and do not replace
34
- project-specific testing, debugging, or verification.
35
-
36
- ## Trigger
37
-
38
- Use Directed Development only when all are true:
39
-
40
- - the task is product work
41
- - it crosses local lanes or shared contracts
42
- - sequencing risk makes a flat plan unsafe
43
-
44
- Doc-only projects do not use Directed Development unless explicitly opted in.
@@ -1,9 +0,0 @@
1
- # Ponytail Integration (Retired)
2
-
3
- PGS no longer requires or configures the Ponytail plugin.
4
-
5
- Prefer the smallest correct implementation, reuse mature tools, and avoid
6
- speculative abstractions as ordinary engineering judgment. A global mode and
7
- prompt/session hooks are unnecessary for those principles.
8
-
9
- This file remains only as a stable target for historical links.
@@ -1,12 +0,0 @@
1
- # Superpowers Integration (Retired)
2
-
3
- PGS no longer requires or routes through the Superpowers plugin.
4
-
5
- The useful principles—understand before editing, diagnose root causes, verify
6
- before claiming completion, and use tests proportionate to risk—are already part
7
- of Codex and project-level engineering rules. Keeping a mandatory bootstrap
8
- workflow duplicated those responsibilities and made small tasks unnecessarily
9
- ceremonial.
10
-
11
- This file remains only so historical decisions and links have a stable target.
12
- Do not add Superpowers startup instructions or make it a portfolio requirement.