persona-harness 0.3.1-alpha.2 → 0.3.2-alpha.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 CHANGED
@@ -12,6 +12,31 @@ This project uses npm prerelease versions for tester-facing alpha builds. During
12
12
 
13
13
  ### Known Gaps
14
14
 
15
+ ## [0.3.2-alpha.0] - 2026-06-22
16
+
17
+ ### Added
18
+
19
+ - Added `ph workflow implement` as the single AI-facing implementation rail for short TUI requests such as `README.md 보고 구현해줘`.
20
+ - Added README chunk-read guidance to the implementation rail, using `npx ph bearshell --shell 'wc -l README.md'` and 220-line `sed -n` ranges.
21
+ - Added README read coverage workflow diagnostics so filled implementation reports must record `README ranges read` when `README.md` exists.
22
+ - Added `src/cli/workflow-output.ts` to keep workflow command orchestration separate from long AI-facing rail output.
23
+
24
+ ### Changed
25
+
26
+ - Updated injection, plan prompts, next/resume output, and README guidance to prefer `npx ph workflow implement` over the older two-step `workflow start implement` plus `plan --implement` path.
27
+ - Kept `ph workflow start implement` and `ph plan --implement` available as lower-level compatibility surfaces.
28
+ - Kept direct `.persona/rules` reads as non-blocking workflow notes, while raw final verification remains blocking.
29
+
30
+ ### Fixed
31
+
32
+ - `ph workflow finish implement` now fails when `README.md` exists but README range coverage is empty, preventing agents from reporting completion after only a partial README read.
33
+
34
+ ### Known Gaps
35
+
36
+ - The read coverage gate verifies recorded ranges, not semantic understanding of the README.
37
+ - This release still does not certify generated application product quality.
38
+ - Full TDD workflow, frontend, infra, desktop, and AST/linter enforcement remain future tracks.
39
+
15
40
  ## [0.3.1-alpha.2] - 2026-06-22
16
41
 
17
42
  ### Added
package/README.ko.md CHANGED
@@ -6,7 +6,7 @@ OpenCode를 위한 Java/Spring backend Clean Code workflow pilot.
6
6
 
7
7
  Persona Harness는 에이전트가 빈 프로젝트에서 시작해 backend 맥락을 묻고, 구현 전 architecture plan을 남긴 뒤, 더 균일한 Java/Spring 구조로 코드를 만들도록 돕습니다.
8
8
 
9
- `ph` 명령어는 주로 AI가 쓰는 workflow surface입니다. 사용자는 설치와 초기화만 해두고, OpenCode나 Codex-style TUI에서 “README 보고 구현해줘”처럼 자연어로 요청하는 흐름을 목표로 합니다. 이후 `ph workflow start implement`, `ph bearshell`, report-fill, `ph workflow finish implement` 명령은 에이전트가 실행해야 합니다.
9
+ `ph` 명령어는 주로 AI가 쓰는 workflow surface입니다. 사용자는 설치와 초기화만 해두고, OpenCode나 Codex-style TUI에서 “README 보고 구현해줘”처럼 자연어로 요청하는 흐름을 목표로 합니다. 이후 `ph workflow implement`, `ph bearshell`, report-fill, `ph workflow finish implement` 명령은 에이전트가 실행해야 합니다.
10
10
 
11
11
  > 현재 범위: Java/Spring backend MVP.
12
12
  > frontend, infra, desktop app, AST/linter enforcement, 완전한 TDD workflow는 후속 트랙입니다.
@@ -112,6 +112,7 @@ opencode run --dir . --model <model> --dangerously-skip-permissions \
112
112
  - `ph bearshell`: bounded shell command helper
113
113
  - `ph history`: 사용한 workflow artifact를 `.persona/workflow/history/`에 보존
114
114
  - `ph workflow check`: 현재 plan/report/evidence 상태 확인
115
+ - `ph workflow implement`: accepted plan workflow 상태가 준비된 뒤 AI용 단일 구현 레일과 README chunk-read 명령 출력
115
116
  - `ph workflow start implement`: accepted plan workflow 상태가 준비된 뒤 AI용 구현 레일 출력
116
117
  - `ph workflow finish implement`: workflow report/evidence가 준비되기 전 완료 보고 차단
117
118
  - `ph workflow guard implement/final`: workflow rail이 재사용하는 저수준 strict gate
package/README.md CHANGED
@@ -195,8 +195,7 @@ README.md 보고 구현해줘
195
195
  The agent should run or follow these workflow commands by itself:
196
196
 
197
197
  ```text
198
- npx ph workflow start implement
199
- npx ph plan --implement
198
+ npx ph workflow implement
200
199
  npx ph bearshell ...
201
200
  npx ph plan --report-filled implementation
202
201
  npx ph plan --report-filled review
@@ -208,7 +207,7 @@ If the agent ignores the workflow, paste this stricter prompt:
208
207
  ```text
209
208
  README.md, .persona/project-profile.jsonc, .persona/policies, .persona/workflow/plan.md를 읽고 plan이 accepted 상태인지 확인한 뒤 Java/Spring Gradle 기반으로 요구사항 전체를 구현해줘.
210
209
 
211
- 구현 전 `npx ph workflow start implement`와 `npx ph plan --implement`를 실행해줘.
210
+ 구현 전 `npx ph workflow implement`를 실행하고, README.md는 해당 출력의 bearshell chunk-read 방식으로 끝까지 읽어줘.
212
211
  명령 실행은 가능하면 `npx ph bearshell`로 해줘.
213
212
  구현 후 `npx ph bearshell --shell 'gradle test'`, `npx ph bearshell --shell 'gradle build'`를 실행해줘.
214
213
  실행 가능한 Spring Boot 앱이면 bootRun과 HTTP happy/failure smoke도 확인해줘.
@@ -261,6 +260,7 @@ These commands are intentionally visible so AI agents can call them from OpenCod
261
260
  - `ph plan --implement`: checks that implementation may start and prints the implementation rail.
262
261
  - `ph bearshell`: runs timeout-bounded and output-bounded shell commands.
263
262
  - `ph workflow check`: reports plan/report/evidence status.
263
+ - `ph workflow implement`: prints the single AI-facing implementation rail, including README chunk-read commands.
264
264
  - `ph workflow start implement`: prints the AI-facing implementation workflow.
265
265
  - `ph workflow finish implement`: checks whether the workflow can be reported complete.
266
266
  - `ph doctor`: diagnoses OpenCode and Persona Harness integration.
package/dist/cli/index.js CHANGED
@@ -79,6 +79,7 @@ function personaCliUsage(invocationName) {
79
79
  " language Show supported user languages for intake and workflow prompts.",
80
80
  " bearshell <command> [args...] Run a bounded command helper for repo inspection and smoke tests.",
81
81
  " workflow check Report plan/report/evidence workflow status.",
82
+ " workflow implement Print the single AI-facing implementation rail.",
82
83
  " workflow start implement Print the AI-facing implementation workflow rail.",
83
84
  " workflow finish implement Block final answer until implementation workflow evidence is complete.",
84
85
  " workflow guard implement Block implementation until plan workflow state is ready.",
@@ -98,6 +99,7 @@ function personaCliUsage(invocationName) {
98
99
  ` ${invocationName} history --id run-001`,
99
100
  ` ${invocationName} bearshell npm test`,
100
101
  ` ${invocationName} workflow check`,
102
+ ` ${invocationName} workflow implement`,
101
103
  ` ${invocationName} workflow start implement`,
102
104
  ` ${invocationName} workflow finish implement`,
103
105
  ` ${invocationName} workflow guard implement`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAS1D,MAAM,UAAU,aAAa,CAAC,IAAuB,EAAE,UAA6B,EAAE;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACvB,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;IAErD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACnF,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACvF,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACvF,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACvF,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5F,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAClF,CAAC;IAED,OAAO;QACL,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,oBAAoB,OAAO,OAAO,eAAe,CAAC,cAAc,CAAC,IAAI;KAC9E,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,cAAsB;IAC7C,OAAO;QACL,UAAU,cAAc,sBAAsB;QAC9C,EAAE;QACF,WAAW;QACX,yFAAyF;QACzF,qFAAqF;QACrF,kGAAkG;QAClG,0EAA0E;QAC1E,yFAAyF;QACzF,+FAA+F;QAC/F,mGAAmG;QACnG,6EAA6E;QAC7E,gFAAgF;QAChF,kFAAkF;QAClF,uGAAuG;QACvG,yFAAyF;QACzF,kGAAkG;QAClG,gGAAgG;QAChG,4FAA4F;QAC5F,yEAAyE;QACzE,4EAA4E;QAC5E,yFAAyF;QACzF,EAAE;QACF,WAAW;QACX,KAAK,cAAc,OAAO;QAC1B,KAAK,cAAc,SAAS;QAC5B,KAAK,cAAc,OAAO;QAC1B,KAAK,cAAc,cAAc;QACjC,KAAK,cAAc,WAAW;QAC9B,KAAK,cAAc,uBAAuB;QAC1C,KAAK,cAAc,qBAAqB;QACxC,KAAK,cAAc,iBAAiB;QACpC,KAAK,cAAc,qBAAqB;QACxC,KAAK,cAAc,2BAA2B;QAC9C,KAAK,cAAc,4BAA4B;QAC/C,KAAK,cAAc,2BAA2B;QAC9C,KAAK,cAAc,uBAAuB;QAC1C,KAAK,cAAc,SAAS;QAC5B,KAAK,cAAc,mBAAmB;QACtC,KAAK,cAAc,QAAQ;QAC3B,KAAK,cAAc,WAAW;QAC9B,KAAK,cAAc,uBAAuB;QAC1C,KAAK,cAAc,qDAAqD;KACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB;IACvC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAA;IAE/F,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAClF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb;gBACE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;gBACzB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;gBACnC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;aAChD,EACD,cAAc,CACf,CAAA;YACD,WAAW,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,CAAA;QAClB,CAAC;QACD,OAAM;IACR,CAAC;IAED,WAAW,CACT,aAAa,CAAC,IAAI,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,cAAc;KACf,CAAC,CACH,CAAA;AACH,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjD,OAAO,UAAU,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/H,CAAC;AAED,IAAI,eAAe,EAAE,EAAE,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAA;YAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -124,7 +124,7 @@ function implementationGateOutput(planPath, status) {
124
124
  `- ${REVIEW_REPORT_PATH}`,
125
125
  "",
126
126
  "Required workflow commands:",
127
- "- Before implementation, run `npx ph workflow start implement`.",
127
+ "- Before implementation, run `npx ph workflow implement` for the single AI-facing implementation rail.",
128
128
  "- Run shell verification through `npx ph bearshell` when possible.",
129
129
  "- After implementation, fill the implementation report and run `npx ph plan --report-filled implementation`.",
130
130
  "- Before final answer, fill the review report after manual QA, run `npx ph plan --report-filled review`, then run `npx ph workflow finish implement`.",
@@ -140,7 +140,7 @@ function runImplementationGate(options) {
140
140
  "Workflow plan is not accepted.",
141
141
  `Current status: ${result.status}`,
142
142
  "Run npx ph plan --accept after review, or npx ph plan --revise if the plan needs changes.",
143
- "For a short TUI request like '그냥 플랜보고 구현해줘', run npx ph plan --implement again after acceptance.",
143
+ "For a short TUI request like '그냥 플랜보고 구현해줘', run npx ph workflow implement after acceptance.",
144
144
  ].join("\n"));
145
145
  }
146
146
  const missingArtifacts = missingWorkflowArtifacts(options);
@@ -1 +1 @@
1
- {"version":3,"file":"plan-command.js","sourceRoot":"","sources":["../../src/cli/plan-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-command.js","sourceRoot":"","sources":["../../src/cli/plan-command.ts"],"names":[],"mappings":"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"}
@@ -79,7 +79,7 @@ function nextActionLines(snapshot) {
79
79
  return ["Workflow report template is missing.", "Restore templates with npx ph plan --force after preserving existing plan content."];
80
80
  }
81
81
  if (snapshot.implementationStatus !== "filled") {
82
- return ["Implementation is next.", "Next command: npx ph plan --implement"];
82
+ return ["Implementation is next.", "Next command: npx ph workflow implement"];
83
83
  }
84
84
  if (snapshot.reviewStatus !== "filled") {
85
85
  return [
@@ -154,8 +154,8 @@ function resumePrompt(snapshot, reportText) {
154
154
  "- Fill .persona/workflow/implementation-report.md with actual Read Coverage and Continuation evidence.",
155
155
  "- When implementation is complete, run npx ph plan --report-filled implementation.",
156
156
  "",
157
- "Fallback implementation gate:",
158
- "npx ph plan --implement",
157
+ "Fallback implementation rail:",
158
+ "npx ph workflow implement",
159
159
  "",
160
160
  "Implementation prompt:",
161
161
  createImplementationPrompt(),
@@ -1 +1 @@
1
- {"version":3,"file":"plan-next.js","sourceRoot":"","sources":["../../src/cli/plan-next.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-next.js","sourceRoot":"","sources":["../../src/cli/plan-next.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export function createPlanOnlyPrompt() {
13
13
  "",
14
14
  "계획이 불확실하면 구현하지 말고 질문이나 가정을 .persona/workflow/plan.md에 명확히 남겨줘.",
15
15
  "",
16
- "만약 사용자가 '플랜 보고 구현해줘', '계획대로 해줘', 'README 보고 구현해줘', '이제 구현해줘'처럼 짧은 구현 지시를 하면 바로 구현하지 말고 `npx ph workflow start implement`를 먼저 실행해줘.",
16
+ "만약 사용자가 '플랜 보고 구현해줘', '계획대로 해줘', 'README 보고 구현해줘', '이제 구현해줘'처럼 짧은 구현 지시를 하면 바로 구현하지 말고 `npx ph workflow implement`를 먼저 실행해줘.",
17
17
  "",
18
18
  "명령 실행이 필요하면 `npx ph bearshell`을 우선 사용하고, Persona Harness CLI는 글로벌 `ph`가 아니라 `npx ph`로 실행해줘.",
19
19
  ].join("\n");
@@ -22,7 +22,7 @@ export function createImplementationPrompt() {
22
22
  return [
23
23
  "사용자가 `README.md 보고 구현해줘`, `플랜 보고 구현해줘`, `그냥 구현해줘`처럼 짧게 말해도 이 구현 workflow를 생략하지 마.",
24
24
  "",
25
- "구현을 시작하기 전에 `npx ph workflow start implement`를 먼저 실행하고, 그 출력에 따라 `npx ph plan --implement`, README.md, .persona/project-profile.jsonc, .persona/policies, .persona/workflow/plan.md를 읽은 뒤 accepted plan 기준으로 구현해줘.",
25
+ "구현을 시작하기 전에 `npx ph workflow implement`를 먼저 실행하고, 그 단일 레일에 따라 README.md, .persona/project-profile.jsonc, .persona/policies, .persona/workflow/plan.md를 읽은 뒤 accepted plan 기준으로 구현해줘.",
26
26
  "",
27
27
  "node_modules, .opencode, .persona/rules, .persona/evidence 경로는 읽지 마. package/vendor/setup 문서를 구현 컨텍스트로 읽지 마.",
28
28
  ".persona/rules를 직접 열어 규칙 원문을 읽지 마. 필요한 규칙은 Persona Harness injection summary와 accepted plan에 이미 요약된다.",
@@ -1 +1 @@
1
- {"version":3,"file":"plan-prompts.js","sourceRoot":"","sources":["../../src/cli/plan-prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,yIAAyI;QACzI,EAAE;QACF,8GAA8G;QAC9G,uGAAuG;QACvG,EAAE;QACF,4HAA4H;QAC5H,EAAE;QACF,6LAA6L;QAC7L,EAAE;QACF,gJAAgJ;QAChJ,EAAE;QACF,gEAAgE;QAChE,EAAE;QACF,oIAAoI;QACpI,EAAE;QACF,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,mFAAmF;QACnF,EAAE;QACF,oNAAoN;QACpN,EAAE;QACF,8GAA8G;QAC9G,uGAAuG;QACvG,EAAE;QACF,6IAA6I;QAC7I,EAAE;QACF,6LAA6L;QAC7L,2JAA2J;QAC3J,EAAE;QACF,oGAAoG;QACpG,gLAAgL;QAChL,EAAE;QACF,0GAA0G;QAC1G,EAAE;QACF,mIAAmI;QACnI,EAAE;QACF,iMAAiM;QACjM,EAAE;QACF,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"plan-prompts.js","sourceRoot":"","sources":["../../src/cli/plan-prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,yIAAyI;QACzI,EAAE;QACF,8GAA8G;QAC9G,uGAAuG;QACvG,EAAE;QACF,4HAA4H;QAC5H,EAAE;QACF,6LAA6L;QAC7L,EAAE;QACF,gJAAgJ;QAChJ,EAAE;QACF,gEAAgE;QAChE,EAAE;QACF,8HAA8H;QAC9H,EAAE;QACF,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,mFAAmF;QACnF,EAAE;QACF,sLAAsL;QACtL,EAAE;QACF,8GAA8G;QAC9G,uGAAuG;QACvG,EAAE;QACF,6IAA6I;QAC7I,EAAE;QACF,6LAA6L;QAC7L,2JAA2J;QAC3J,EAAE;QACF,oGAAoG;QACpG,gLAAgL;QAChL,EAAE;QACF,0GAA0G;QAC1G,EAAE;QACF,mIAAmI;QACnI,EAAE;QACF,iMAAiM;QACjM,EAAE;QACF,6FAA6F;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -1,12 +1,14 @@
1
+ import { failedGuardOutput, failedRunnerOutput, passedFinishOutput, passedGuardOutput, passedImplementOutput, passedStartOutput, } from "./workflow-output.js";
1
2
  import { formatWorkflowStatus, readWorkflowStatus } from "./workflow-status.js";
2
3
  export function workflowUsage(invocation = "ph") {
3
4
  return [
4
- `Usage: ${invocation} workflow <check|start implement|finish implement|guard implement|guard final>`,
5
+ `Usage: ${invocation} workflow <check|implement|start implement|finish implement|guard implement|guard final>`,
5
6
  "",
6
7
  "Checks or guards Persona Harness workflow artifacts before or after implementation.",
7
8
  "",
8
9
  "Scope:",
9
10
  "- workflow check is report-only",
11
+ "- workflow implement prints a single AI-facing implementation rail",
10
12
  "- workflow start/finish are AI-facing workflow rails",
11
13
  "- workflow guard uses strict exit codes for AI-facing workflow discipline",
12
14
  "- no generated app quality certification",
@@ -16,6 +18,9 @@ function parseWorkflowArgs(args) {
16
18
  if (args.length === 0 || args[0] === "check") {
17
19
  return args.length <= 1 ? { kind: "check" } : { kind: "invalid", message: "workflow check does not accept extra arguments." };
18
20
  }
21
+ if (args[0] === "implement") {
22
+ return args.length === 1 ? { kind: "implement" } : { kind: "invalid", message: "workflow implement does not accept extra arguments." };
23
+ }
19
24
  if (args[0] === "guard") {
20
25
  if (args.length !== 2) {
21
26
  return { kind: "invalid", message: "workflow guard requires implement or final." };
@@ -48,103 +53,6 @@ function parseWorkflowArgs(args) {
48
53
  }
49
54
  return { kind: "invalid", message: `Unknown workflow command: ${args[0]}` };
50
55
  }
51
- function failedGuardOutput(guardKind, reasons) {
52
- return {
53
- status: 1,
54
- stdout: "",
55
- stderr: [
56
- `Workflow guard failed: ${guardKind}`,
57
- "",
58
- "Required fixes:",
59
- ...reasons.map((reason) => `- ${reason}`),
60
- "",
61
- "This is a workflow-state gate only. It does not certify generated app product quality.",
62
- ].join("\n") + "\n",
63
- };
64
- }
65
- function failedRunnerOutput(action, runnerKind, reasons) {
66
- return {
67
- status: 1,
68
- stdout: "",
69
- stderr: [
70
- `Workflow ${action} failed: ${runnerKind}`,
71
- "",
72
- "Required fixes:",
73
- ...reasons.map((reason) => `- ${reason}`),
74
- "",
75
- "This is an AI-facing workflow rail only. It does not certify generated app product quality.",
76
- ].join("\n") + "\n",
77
- };
78
- }
79
- function passedStartOutput(runnerKind) {
80
- return {
81
- status: 0,
82
- stdout: [
83
- `Persona Harness Workflow Start: ${runnerKind}`,
84
- "",
85
- "Start status: PASS",
86
- "",
87
- "Short TUI request detected:",
88
- "- If the user said `README.md 보고 구현해줘`, `플랜 보고 구현해줘`, or another short implementation request, treat this output as the required workflow rail.",
89
- "",
90
- "Run this implementation rail now:",
91
- "1. `npx ph plan --implement`",
92
- "2. Read `README.md`, `.persona/project-profile.jsonc`, `.persona/policies`, and `.persona/workflow/plan.md`.",
93
- "3. Use codegraph MCP before raw file reads for code structure analysis when available.",
94
- "4. Implement from the accepted plan.",
95
- "5. Use `npx ph bearshell` for shell verification.",
96
- "6. Fill `.persona/workflow/implementation-report.md`.",
97
- "7. Run `npx ph plan --report-filled implementation`.",
98
- "8. Fill `.persona/workflow/review-report.md` after review/manual QA.",
99
- "9. Run `npx ph plan --report-filled review`.",
100
- "10. Run `npx ph workflow finish implement`.",
101
- "11. Do not give the final answer until `npx ph workflow finish implement` passes.",
102
- "",
103
- "Scope:",
104
- "- AI-facing workflow rail",
105
- "- no generated app product-quality certification",
106
- ].join("\n") + "\n",
107
- stderr: "",
108
- };
109
- }
110
- function passedFinishOutput(runnerKind) {
111
- return {
112
- status: 0,
113
- stdout: [
114
- `Persona Harness Workflow Finish: ${runnerKind}`,
115
- "",
116
- "Finish status: PASS",
117
- "Workflow evidence is complete; final answer may be reported.",
118
- "",
119
- "Next:",
120
- "- `npx ph history --id <run-id>` when this workflow should be archived.",
121
- "",
122
- "Scope:",
123
- "- AI-facing workflow rail",
124
- "- no generated app product-quality certification",
125
- ].join("\n") + "\n",
126
- stderr: "",
127
- };
128
- }
129
- function passedGuardOutput(guardKind) {
130
- const nextLine = guardKind === "implement"
131
- ? "Implementation may start. Run `npx ph plan --implement`, then implement from the accepted plan."
132
- : "Workflow evidence is complete; final answer may be reported.";
133
- return {
134
- status: 0,
135
- stdout: [
136
- `Persona Harness Workflow Guard: ${guardKind}`,
137
- "",
138
- "Guard status: PASS",
139
- nextLine,
140
- "",
141
- "Scope:",
142
- "- AI-facing workflow discipline gate",
143
- "- no generated app product-quality certification",
144
- ].join("\n") + "\n",
145
- stderr: "",
146
- };
147
- }
148
56
  function implementationGuardReasons(summary) {
149
57
  const reasons = [];
150
58
  if (summary.plan !== "accepted") {
@@ -175,6 +83,9 @@ function finalGuardReasons(summary) {
175
83
  if (summary.commandDisciplineBlocking) {
176
84
  reasons.push(summary.commandDiscipline);
177
85
  }
86
+ if (summary.readCoverageBlocking) {
87
+ reasons.push("README ranges read must be recorded in .persona/workflow/implementation-report.md");
88
+ }
178
89
  return reasons;
179
90
  }
180
91
  function runWorkflowGuard(guardKind, options) {
@@ -193,6 +104,14 @@ function runWorkflowStart(runnerKind, options) {
193
104
  }
194
105
  return passedStartOutput(runnerKind);
195
106
  }
107
+ function runWorkflowImplement(options) {
108
+ const summary = readWorkflowStatus(options.projectDir);
109
+ const reasons = implementationGuardReasons(summary);
110
+ if (reasons.length > 0) {
111
+ return failedRunnerOutput("implement", "implement", reasons);
112
+ }
113
+ return passedImplementOutput();
114
+ }
196
115
  function runWorkflowFinish(runnerKind, options) {
197
116
  const summary = readWorkflowStatus(options.projectDir);
198
117
  const reasons = finalGuardReasons(summary);
@@ -212,6 +131,9 @@ export function runWorkflowCommand(args, options = {}, invocationName = "ph") {
212
131
  if (parsed.kind === "guard") {
213
132
  return runWorkflowGuard(parsed.guardKind, options);
214
133
  }
134
+ if (parsed.kind === "implement") {
135
+ return runWorkflowImplement(options);
136
+ }
215
137
  if (parsed.kind === "start") {
216
138
  return runWorkflowStart(parsed.runnerKind, options);
217
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-command.js","sourceRoot":"","sources":["../../src/cli/workflow-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-command.js","sourceRoot":"","sources":["../../src/cli/workflow-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CliRunResult } from "./bearshell.js";
2
+ export type WorkflowGuardKind = "implement" | "final";
3
+ export type WorkflowRunnerKind = "implement";
4
+ export type WorkflowRunnerAction = "implement" | "start" | "finish";
5
+ export declare function failedGuardOutput(guardKind: WorkflowGuardKind, reasons: readonly string[]): CliRunResult;
6
+ export declare function failedRunnerOutput(action: WorkflowRunnerAction, runnerKind: WorkflowRunnerKind, reasons: readonly string[]): CliRunResult;
7
+ export declare function passedStartOutput(runnerKind: WorkflowRunnerKind): CliRunResult;
8
+ export declare function passedImplementOutput(): CliRunResult;
9
+ export declare function passedFinishOutput(runnerKind: WorkflowRunnerKind): CliRunResult;
10
+ export declare function passedGuardOutput(guardKind: WorkflowGuardKind): CliRunResult;
@@ -0,0 +1,142 @@
1
+ export function failedGuardOutput(guardKind, reasons) {
2
+ return {
3
+ status: 1,
4
+ stdout: "",
5
+ stderr: [
6
+ `Workflow guard failed: ${guardKind}`,
7
+ "",
8
+ "Required fixes:",
9
+ ...reasons.map((reason) => `- ${reason}`),
10
+ "",
11
+ "This is a workflow-state gate only. It does not certify generated app product quality.",
12
+ ].join("\n") + "\n",
13
+ };
14
+ }
15
+ export function failedRunnerOutput(action, runnerKind, reasons) {
16
+ return {
17
+ status: 1,
18
+ stdout: "",
19
+ stderr: [
20
+ `Workflow ${action} failed: ${runnerKind}`,
21
+ "",
22
+ "Required fixes:",
23
+ ...reasons.map((reason) => `- ${reason}`),
24
+ "",
25
+ "This is an AI-facing workflow rail only. It does not certify generated app product quality.",
26
+ ].join("\n") + "\n",
27
+ };
28
+ }
29
+ export function passedStartOutput(runnerKind) {
30
+ return {
31
+ status: 0,
32
+ stdout: [
33
+ `Persona Harness Workflow Start: ${runnerKind}`,
34
+ "",
35
+ "Start status: PASS",
36
+ "",
37
+ "Short TUI request detected:",
38
+ "- If the user said `README.md 보고 구현해줘`, `플랜 보고 구현해줘`, or another short implementation request, treat this output as the required workflow rail.",
39
+ "",
40
+ "Run this implementation rail now:",
41
+ "1. `npx ph plan --implement`",
42
+ "2. Read `README.md`, `.persona/project-profile.jsonc`, `.persona/policies`, and `.persona/workflow/plan.md`.",
43
+ "3. Do not read `.persona/rules` directly; use the accepted plan and Persona Harness injection summary.",
44
+ "4. Use codegraph MCP before raw file reads for code structure analysis when available.",
45
+ "5. Implement from the accepted plan.",
46
+ "6. Use `npx ph bearshell` for shell verification.",
47
+ "7. Fill `.persona/workflow/implementation-report.md`.",
48
+ "8. Run `npx ph plan --report-filled implementation`.",
49
+ "9. Fill `.persona/workflow/review-report.md` after review/manual QA.",
50
+ "10. Run `npx ph plan --report-filled review`.",
51
+ "11. Run `npx ph workflow finish implement`.",
52
+ "12. Do not give the final answer until `npx ph workflow finish implement` passes.",
53
+ "",
54
+ "Scope:",
55
+ "- AI-facing workflow rail",
56
+ "- no generated app product-quality certification",
57
+ ].join("\n") + "\n",
58
+ stderr: "",
59
+ };
60
+ }
61
+ export function passedImplementOutput() {
62
+ return {
63
+ status: 0,
64
+ stdout: [
65
+ "Persona Harness Workflow Implement",
66
+ "",
67
+ "Implementation rail status: PASS",
68
+ "",
69
+ "Use this as the single rail for short TUI requests like `README.md 보고 구현해줘` or `그냥 구현해줘`.",
70
+ "",
71
+ "Read README completely through bearshell chunks:",
72
+ "1. `npx ph bearshell --shell 'wc -l README.md'`",
73
+ "2. `npx ph bearshell --shell 'sed -n \"1,220p\" README.md'`",
74
+ "3. If README.md has more than 220 lines, continue with `npx ph bearshell --shell 'sed -n \"221,440p\" README.md'`.",
75
+ "4. Continue 220-line ranges until the README line count is covered.",
76
+ "5. Record README ranges read in `.persona/workflow/implementation-report.md`.",
77
+ "",
78
+ "Required context:",
79
+ "- README.md",
80
+ "- .persona/project-profile.jsonc",
81
+ "- .persona/policies",
82
+ "- .persona/workflow/plan.md",
83
+ "",
84
+ "Do not read `.persona/rules` directly; use the accepted plan and Persona Harness injection summary.",
85
+ "Do not read node_modules, .opencode, package vendor files, or .persona/evidence as implementation context.",
86
+ "",
87
+ "Implementation checklist:",
88
+ "1. Implement from the accepted plan.",
89
+ "2. Use `npx ph bearshell` for shell verification.",
90
+ "3. Fill `.persona/workflow/implementation-report.md` with README read method, README ranges read, plan read method, and plan ranges read.",
91
+ "4. Run `npx ph plan --report-filled implementation`.",
92
+ "5. Fill `.persona/workflow/review-report.md` after review/manual QA.",
93
+ "6. Run `npx ph plan --report-filled review`.",
94
+ "7. Run `npx ph workflow finish implement`.",
95
+ "8. Do not give the final answer until `npx ph workflow finish implement` passes.",
96
+ "",
97
+ "Scope:",
98
+ "- AI-facing workflow rail",
99
+ "- workflow evidence gate, not generated app product-quality certification",
100
+ ].join("\n") + "\n",
101
+ stderr: "",
102
+ };
103
+ }
104
+ export function passedFinishOutput(runnerKind) {
105
+ return {
106
+ status: 0,
107
+ stdout: [
108
+ `Persona Harness Workflow Finish: ${runnerKind}`,
109
+ "",
110
+ "Finish status: PASS",
111
+ "Workflow evidence is complete; final answer may be reported.",
112
+ "",
113
+ "Next:",
114
+ "- `npx ph history --id <run-id>` when this workflow should be archived.",
115
+ "",
116
+ "Scope:",
117
+ "- AI-facing workflow rail",
118
+ "- no generated app product-quality certification",
119
+ ].join("\n") + "\n",
120
+ stderr: "",
121
+ };
122
+ }
123
+ export function passedGuardOutput(guardKind) {
124
+ const nextLine = guardKind === "implement"
125
+ ? "Implementation may start. Run `npx ph workflow implement`, then implement from the accepted plan."
126
+ : "Workflow evidence is complete; final answer may be reported.";
127
+ return {
128
+ status: 0,
129
+ stdout: [
130
+ `Persona Harness Workflow Guard: ${guardKind}`,
131
+ "",
132
+ "Guard status: PASS",
133
+ nextLine,
134
+ "",
135
+ "Scope:",
136
+ "- AI-facing workflow discipline gate",
137
+ "- no generated app product-quality certification",
138
+ ].join("\n") + "\n",
139
+ stderr: "",
140
+ };
141
+ }
142
+ //# sourceMappingURL=workflow-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-output.js","sourceRoot":"","sources":["../../src/cli/workflow-output.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,9 @@ export type WorkflowStatusSummary = {
5
5
  readonly implementation: string;
6
6
  readonly review: string;
7
7
  readonly evidence: "present" | "missing";
8
+ readonly readCoverage: string;
9
+ readonly readCoverageBlocking: boolean;
10
+ readonly readCoverageFinding: "PASS" | "WARN";
8
11
  readonly commandDiscipline: string;
9
12
  readonly commandDisciplineBlocking: boolean;
10
13
  readonly commandDisciplineFinding: "PASS" | "WARN";
@@ -5,6 +5,7 @@ const PLAN_PATH = ".persona/workflow/plan.md";
5
5
  const IMPLEMENTATION_REPORT_PATH = ".persona/workflow/implementation-report.md";
6
6
  const REVIEW_REPORT_PATH = ".persona/workflow/review-report.md";
7
7
  const EVIDENCE_DIR = ".persona/evidence";
8
+ const README_PATH = "README.md";
8
9
  function readStatusLine(filePath) {
9
10
  if (!existsSync(filePath)) {
10
11
  return "missing";
@@ -37,6 +38,59 @@ const FINAL_VERIFICATION_PATTERN = /(?:\.\/)?gradlew?\s+(?:test|build|bootRun)\b
37
38
  const RAW_FINAL_VERIFICATION_PATTERN = /(?:raw shell|직접\s*썼|직접\s*사용|raw\s+command)[^\n]*(?:final verification|최종\s*검증)|(?:final verification|최종\s*검증)[^\n]*(?:raw shell|직접\s*썼|직접\s*사용|raw\s+command)/i;
38
39
  const RAW_WITHOUT_BEARSHELL_PATTERN = /(?:raw shell|직접\s*썼|직접\s*사용|raw\s+command)[^\n]*(?:bearshell)[^\n]*(?:not provided|not used|없|않|못|미사용|제공되지)/i;
39
40
  const FINAL_VERIFICATION_RERUN_PATTERN = /(?:final verification|최종\s*검증)[^\n]*(?:rerun|re-run|다시\s*실행|재실행|다시\s*검증)[^\n]*(?:bearshell|npx\s+ph\s+bearshell)|(?:final verification|최종\s*검증)[^\n]*(?:bearshell|npx\s+ph\s+bearshell)[^\n]*(?:rerun|re-run|다시\s*실행|재실행|다시\s*검증)|(?:bearshell|npx\s+ph\s+bearshell)[^\n]*(?:rerun|re-run|다시\s*실행|재실행|다시\s*검증)[^\n]*(?:final verification|최종\s*검증)/i;
41
+ const README_RANGES_FIELD_PATTERN = /^-\s*README ranges read:\s*(.*)$/i;
42
+ const READ_COVERAGE_STOP_PATTERN = /^-\s*(?:Plan read method|Plan ranges read|Unread ranges|Read evidence notes):/i;
43
+ const RANGE_COVERAGE_PATTERN = /\b\d+\s*[-–]\s*\d+\b|\ball\b|\bcomplete\b|전체|끝까지|완독/i;
44
+ function hasReadmeRangeCoverage(reportText) {
45
+ const lines = reportText.split(/\r?\n/);
46
+ const fieldIndex = lines.findIndex((line) => README_RANGES_FIELD_PATTERN.test(line));
47
+ if (fieldIndex === -1) {
48
+ return false;
49
+ }
50
+ const fieldMatch = README_RANGES_FIELD_PATTERN.exec(lines[fieldIndex]);
51
+ if (fieldMatch?.[1] !== undefined && RANGE_COVERAGE_PATTERN.test(fieldMatch[1])) {
52
+ return true;
53
+ }
54
+ for (const line of lines.slice(fieldIndex + 1)) {
55
+ if (/^##\s+/.test(line) || READ_COVERAGE_STOP_PATTERN.test(line)) {
56
+ return false;
57
+ }
58
+ if (RANGE_COVERAGE_PATTERN.test(line)) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ function readCoverage(projectDir, implementationStatus) {
65
+ if (implementationStatus !== "filled") {
66
+ return {
67
+ readCoverage: "not checked until implementation report is filled",
68
+ readCoverageBlocking: false,
69
+ readCoverageFinding: "PASS",
70
+ };
71
+ }
72
+ if (!existsSync(join(projectDir, README_PATH))) {
73
+ return {
74
+ readCoverage: "README.md missing; range coverage not required",
75
+ readCoverageBlocking: false,
76
+ readCoverageFinding: "PASS",
77
+ };
78
+ }
79
+ const implementationReportPath = join(projectDir, IMPLEMENTATION_REPORT_PATH);
80
+ const reportText = existsSync(implementationReportPath) ? readFileSync(implementationReportPath, "utf8") : "";
81
+ if (hasReadmeRangeCoverage(reportText)) {
82
+ return {
83
+ readCoverage: "README ranges observed",
84
+ readCoverageBlocking: false,
85
+ readCoverageFinding: "PASS",
86
+ };
87
+ }
88
+ return {
89
+ readCoverage: "README.md exists but README ranges read is empty",
90
+ readCoverageBlocking: true,
91
+ readCoverageFinding: "WARN",
92
+ };
93
+ }
40
94
  function commandDiscipline(projectDir, implementationStatus, reviewStatus) {
41
95
  if (implementationStatus !== "filled") {
42
96
  return {
@@ -67,10 +121,16 @@ function commandDiscipline(projectDir, implementationStatus, reviewStatus) {
67
121
  if (hasBearshell) {
68
122
  const warnings = [
69
123
  ...(hasRawShell ? ["raw shell environment probe observed"] : []),
124
+ ];
125
+ const notes = [
70
126
  ...(hasDirectRulesRead ? ["direct `.persona/rules` read observed"] : []),
71
127
  ];
128
+ const details = [
129
+ ...warnings.map((warning) => `warning: ${warning}`),
130
+ ...notes.map((note) => `note: ${note}`),
131
+ ];
72
132
  return {
73
- commandDiscipline: warnings.length > 0 ? `bearshell observed; warning: ${warnings.join("; ")}` : "bearshell observed",
133
+ commandDiscipline: details.length > 0 ? `bearshell observed; ${details.join("; ")}` : "bearshell observed",
74
134
  commandDisciplineBlocking: false,
75
135
  commandDisciplineFinding: warnings.length > 0 ? "WARN" : "PASS",
76
136
  };
@@ -96,7 +156,7 @@ function nextAction(summary) {
96
156
  return "review plan, then run `npx ph plan --accept` or `npx ph plan --revise`";
97
157
  }
98
158
  if (summary.implementation !== "filled") {
99
- return "run `npx ph plan --implement`, implement, fill implementation report, then run `npx ph plan --report-filled implementation`";
159
+ return "run `npx ph workflow implement`, implement, fill implementation report, then run `npx ph plan --report-filled implementation`";
100
160
  }
101
161
  if (summary.review !== "filled") {
102
162
  return "fill review report and run `npx ph plan --report-filled review`";
@@ -104,6 +164,9 @@ function nextAction(summary) {
104
164
  if (summary.commandDisciplineBlocking) {
105
165
  return "rerun final verification through `npx ph bearshell`";
106
166
  }
167
+ if (summary.readCoverageBlocking) {
168
+ return "record README ranges read in `.persona/workflow/implementation-report.md`";
169
+ }
107
170
  if (summary.commandDisciplineFinding === "WARN") {
108
171
  return "review workflow noise, then archive completed workflow if acceptable";
109
172
  }
@@ -118,10 +181,17 @@ export function readWorkflowStatus(projectDirInput) {
118
181
  review: readStatusLine(join(projectDir, REVIEW_REPORT_PATH)),
119
182
  evidence: hasFilesDeep(join(projectDir, EVIDENCE_DIR)) ? "present" : "missing",
120
183
  };
184
+ const coverage = readCoverage(projectDir, summary.implementation);
121
185
  const command = commandDiscipline(projectDir, summary.implementation, summary.review);
122
- const next = nextAction({ ...summary, ...command });
123
- const finding = summary.plan === "accepted" && summary.implementation === "filled" && summary.review === "filled" && command.commandDisciplineFinding === "PASS" ? "PASS" : "WARN";
124
- return { ...summary, ...command, finding, next };
186
+ const next = nextAction({ ...summary, ...coverage, ...command });
187
+ const finding = summary.plan === "accepted"
188
+ && summary.implementation === "filled"
189
+ && summary.review === "filled"
190
+ && coverage.readCoverageFinding === "PASS"
191
+ && command.commandDisciplineFinding === "PASS"
192
+ ? "PASS"
193
+ : "WARN";
194
+ return { ...summary, ...coverage, ...command, finding, next };
125
195
  }
126
196
  export function formatWorkflowStatus(summary) {
127
197
  return [
@@ -135,6 +205,7 @@ export function formatWorkflowStatus(summary) {
135
205
  `- .persona/workflow/implementation-report.md: ${summary.implementation}`,
136
206
  `- .persona/workflow/review-report.md: ${summary.review}`,
137
207
  `- .persona/evidence: ${summary.evidence}`,
208
+ `- read coverage: ${summary.readCoverage}`,
138
209
  `- command discipline: ${summary.commandDiscipline}`,
139
210
  "",
140
211
  `Next: ${summary.next}`,
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-status.js","sourceRoot":"","sources":["../../src/cli/workflow-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-status.js","sourceRoot":"","sources":["../../src/cli/workflow-status.ts"],"names":[],"mappings":"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"}
@@ -71,8 +71,8 @@ export function createInjectionBlock(targetFile, projectDir = process.cwd()) {
71
71
  "이 Phase 0 블록은 .persona/rules 정본과 최소 frontmatter/glob/scenario catalog layer를 읽는 MVP rule-loader 결과이며, 아직 full rule engine은 아니다.",
72
72
  "코드 구조 분석이나 변경 영향 파악이 필요하면 raw file read보다 codegraph MCP를 먼저 사용한다. codegraph를 사용할 수 없을 때만 필요한 파일 범위를 직접 읽고 그 이유를 남긴다.",
73
73
  "repo inspection, CLI smoke test, 큰 출력 확인은 `ph bearshell`을 우선 사용한다.",
74
- "짧은 구현 지시(예: '플랜 보고 구현해줘', '계획대로 해줘', '이제 구현해줘')를 받으면 먼저 `npx ph workflow start implement`를 실행하고, 그 출력에 따라 `npx ph plan --implement`를 실행한다.",
75
- "`npx ph workflow start implement`가 실패하면 구현하지 말고 plan/status 문제를 사용자에게 보고한다.",
74
+ "짧은 구현 지시(예: '플랜 보고 구현해줘', '계획대로 해줘', '이제 구현해줘')를 받으면 먼저 `npx ph workflow implement`를 실행하고, 그 단일 레일을 따른다.",
75
+ "`npx ph workflow implement`가 실패하면 구현하지 말고 plan/status 문제를 사용자에게 보고한다.",
76
76
  "긴 README/plan은 `npx ph bearshell --shell 'sed -n \"1,220p\" <file>'`처럼 범위를 나눠 끝까지 읽는다.",
77
77
  "중간에 멈추면 implementation-report에 남은 범위를 기록한다.",
78
78
  "최종 답변 전에는 review-report를 채우고 `npx ph plan --report-filled review`와 `npx ph workflow finish implement`를 실행한다.",
@@ -1 +1 @@
1
- {"version":3,"file":"injection.js","sourceRoot":"","sources":["../../src/phase0/injection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injection.js","sourceRoot":"","sources":["../../src/phase0/injection.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ Use this package for repeatable release operations and release note drafting.
8
8
  - [v0.3.0-alpha.3 candidate](v0.3.0-alpha.3-candidate.md)
9
9
  - [v0.3.0-alpha.3 demo packaging decision](v0.3.0-alpha.3-demo-packaging-decision.md)
10
10
  - [v0.3.0-alpha.3 release notes](v0.3.0-alpha.3-release-notes.md)
11
+ - [v0.3.1-alpha.0 release notes](v0.3.1-alpha.0-release-notes.md)
12
+ - [v0.3.2-alpha.0 release notes](v0.3.2-alpha.0-release-notes.md)
11
13
 
12
14
  Release automation lives in `.github/workflows/release.yml`.
13
15
 
@@ -1,84 +1,77 @@
1
1
  # Next Version Readiness
2
2
 
3
+ ## Candidate
4
+
5
+ ```text
6
+ persona-harness@0.3.2-alpha.0
7
+ dist-tag: alpha
8
+ date: 2026-06-22
9
+ ```
10
+
11
+ ## Release Intent
12
+
13
+ This candidate reduces short-TUI workflow drift. The main user-visible change is that AI agents can run one command, `npx ph workflow implement`, to receive the implementation rail, README chunk-read instructions, report lifecycle, and final finish gate.
14
+
15
+ ## Included Changes
16
+
17
+ - `ph workflow implement` single AI-facing implementation rail.
18
+ - README chunk-read instructions using `ph bearshell` and 220-line ranges.
19
+ - README read coverage diagnostics in `ph workflow check`.
20
+ - `ph workflow finish implement` failure when `README.md` exists but `README ranges read` is empty.
21
+ - Injection, prompt, next/resume, root README, and Korean README guidance updated to prefer `npx ph workflow implement`.
22
+ - Direct `.persona/rules` read remains a non-blocking note; raw final verification remains blocking.
23
+
3
24
  ## Verification Commands
4
25
 
5
26
  | Command | Result |
6
27
  | --- | --- |
7
- | `git status --short` | pass before context-noise changes; working tree now contains this loop's code/doc updates |
8
- | `git branch --show-current` | pass: `main` |
9
- | `npm test` | pass: scope check PASS, docs taxonomy PASS, 32 test files passed, 190 tests passed |
28
+ | `npm test` | pass: 36 test files, 224 tests |
10
29
  | `npm run typecheck` | pass |
11
30
  | `npm run build` | pass |
12
31
  | `npm run report:rules` | pass: PersonaHarnessRule diagnostics PASS, 0 findings |
13
- | `npm run check:scope` | pass: MVP scope diagnostics PASS, 0 findings, report-only |
14
- | `npm run check:injection-value` | pass: injection value diagnostics PASS, current window 3/3, expected decision `continue-java-mvp` |
15
- | `npm pack --dry-run --json` | pass: `persona-harness-0.3.0-alpha.3.tgz`, 191 files, 198.2 kB package size, 735.1 kB unpacked size |
16
- | `npm publish --dry-run --tag alpha` | pass: dry-run only for `persona-harness@0.3.0-alpha.3` |
17
- | `npm publish --tag alpha` | pass: `persona-harness@0.3.0-alpha.3` published |
18
- | `npm view persona-harness dist-tags --json` | pass: `alpha` and `latest` both point to `0.3.0-alpha.3` |
19
-
20
- ## Productization Review Decision
21
-
22
- Source:
23
-
24
- - `~/Desktop/blackbear-persona-harness-test/productization-review/final-productization-verdict.md`
25
- - `~/Desktop/blackbear-persona-harness-test/productization-review/01-ab-result-digest.md`
26
- - `~/Desktop/blackbear-persona-harness-test/productization-review/02-java-mvp-readiness.md`
27
- - `~/Desktop/blackbear-persona-harness-test/productization-review/04-release-risk-review.md`
28
- - `~/Desktop/blackbear-persona-harness-test/productization-review/05-next-work-priority.md`
29
-
30
- Decision:
31
-
32
- ```text
33
- freeze-expansion-and-simplify
32
+ | `npm run check:scope:strict` | pass: MVP scope diagnostics PASS, 0 findings, STRICT mode |
33
+ | `npm run check:injection-value` | pass: current window 3/3, expected decision `continue-java-mvp` |
34
+ | `npm pack --dry-run` | pass: `persona-harness-0.3.2-alpha.0.tgz`, 220 files, 225.5 kB package size, 864.1 kB unpacked size |
35
+ | `npm publish --dry-run --tag alpha` | pass: dry-run only for `persona-harness@0.3.2-alpha.0` |
36
+
37
+ ## Manual CLI Smoke
38
+
39
+ Expected release-loop smoke:
40
+
41
+ ```bash
42
+ tmp_project=$(mktemp -d)
43
+ cd "$tmp_project"
44
+ npm init -y
45
+ npm install -D persona-harness@alpha
46
+ npx ph init
47
+ npx ph plan
48
+ npx ph plan --accept
49
+ npx ph workflow implement
34
50
  ```
35
51
 
36
- The original A/B evidence for `01-book-loans` was mixed:
37
-
38
- - Persona Harness ON completed 4/5 runs and timed out once.
39
- - Persona Harness OFF completed 5/5 runs.
40
- - ON successful runs had better domain repository port placement.
41
- - ON successful runs used application command/result DTO boundaries.
42
- - OFF was more reliable as a generated runnable output baseline.
43
-
44
- After context-noise reduction, `01-book-loans/A-persona-on/run-05` was rerun with the local package:
45
-
46
- - `ph init` now writes project `.gitignore` entries for `node_modules/`, `.opencode/node_modules/`, `.persona/rules/`, `.persona/evidence/`, `.gradle/`, and `build/`.
47
- - Persona Harness ON run-05 completed without timeout: OpenCode exit 0 in 270013 ms.
48
- - Persona Harness ON run-05 produced Java/Spring code, generated 113 evidence files, and final `gradle test` passed.
49
- - The paired Persona OFF run-05 also passed and completed faster: OpenCode exit 0 in 50085 ms.
50
- - The generated ON code still did not match the target package-flow shape closely enough for the analyzer to treat run-05 as ON-positive.
51
- - The analyzer now distinguishes this as `buildable-package-flow-mismatch`, not a generated-project failure.
52
-
53
- ## Demo Packaging Decision
52
+ Expected:
54
53
 
55
- proceed-to-demo-packaging
54
+ - `ph workflow implement` prints README chunk-read commands.
55
+ - `ph workflow finish implement` fails when README ranges are empty.
56
+ - `ph workflow finish implement` passes after `README ranges read` is recorded and normal workflow evidence exists.
56
57
 
57
- ## Evidence
58
+ ## Supported Surface
58
59
 
59
- - Repository verification commands are green.
60
- - Rule diagnostics are green.
61
- - Scope diagnostics are green.
62
- - Injection value status remains `continue-java-mvp`.
63
- - The previous external productization review did not permit packaging because the 5-run ON/OFF result remained mixed.
64
- - The rerun reduces the timeout blocker, and analyzer reason codes now separate generated-project failure from buildable-but-wrong-shape output.
65
- - The generated code-shape blocker has fresh positive evidence after package-flow guidance:
66
- - fresh Persona ON run: `/Users/yongtae/Desktop/blackbear-persona-harness-test/fresh-runs/01-book-loans/A-persona-on/bootjar-guidance-20260622-005742`;
67
- - generated code used `presentation/application/domain/infrastructure`;
68
- - domain repository ports stayed in `domain`; in-memory implementations stayed in `infrastructure`;
69
- - application services did not directly own storage state or ID sequence;
70
- - `gradle build` passed with `:bootJar UP-TO-DATE`, not `:bootJar SKIPPED`;
71
- - `gradle bootRun` plus HTTP happy/failure smoke passed independently.
60
+ - Java/Spring backend MVP.
61
+ - Gradle-first backend workflow.
62
+ - AI-facing workflow discipline for OpenCode/Codex-style TUI use.
63
+ - Report-only diagnostics and workflow evidence gates.
72
64
 
73
- ## Risks
65
+ ## Not Supported
74
66
 
75
- - OpenCode/model runtime can still be slower during Persona ON generation.
76
- - ON setup and evidence files can add context noise for the model, though the default `.gitignore` now hides the largest generated paths from normal project context.
77
- - Productization claims could overstate architectural guidance as quality enforcement.
78
- - One requirement domain is not enough to prove release/demo reliability.
67
+ - Generated app product-quality certification.
68
+ - AST/linter/build enforcement of rule compliance.
69
+ - Frontend/infra/desktop productization.
70
+ - Full TDD workflow.
71
+ - `ph bearshell` sandboxing.
79
72
 
80
- ## Decision Update
73
+ ## Pre-Publish Release Decision
81
74
 
82
- After the fresh package-flow/bootJar ON run, next-version demo packaging can proceed to final package verification.
75
+ Proceed with `0.3.2-alpha.0`.
83
76
 
84
- `persona-harness@0.3.0-alpha.3` is published on the `alpha` and `latest` dist-tags. The remaining product work is external tester feedback and the next narrow quality loop; release-close mechanics for alpha.3 are complete.
77
+ After publish, run a fresh installed-package smoke and then hand the alpha to external testers for short TUI request behavior.
@@ -0,0 +1,104 @@
1
+ # v0.3.2-alpha.0 Release Notes
2
+
3
+ ## Version
4
+
5
+ `v0.3.2-alpha.0`
6
+
7
+ ## Dist Tag
8
+
9
+ `alpha`
10
+
11
+ During the alpha pilot, `latest` is also synchronized to the current alpha build to avoid stale default installs. This is not a stable support claim.
12
+
13
+ ## npm Package
14
+
15
+ `persona-harness@0.3.2-alpha.0`
16
+
17
+ ## Summary
18
+
19
+ This alpha reduces AI workflow forgetfulness in short TUI implementation requests. It adds a single `ph workflow implement` rail and makes README read coverage a workflow evidence gate before an agent can report completion.
20
+
21
+ ## What Changed
22
+
23
+ - Added `ph workflow implement` as the single AI-facing implementation rail.
24
+ - Added README chunk-read instructions to the rail:
25
+ - `npx ph bearshell --shell 'wc -l README.md'`
26
+ - `npx ph bearshell --shell 'sed -n "1,220p" README.md'`
27
+ - continuation ranges such as `221-440`.
28
+ - Added read coverage diagnostics to `ph workflow check`.
29
+ - Added a `ph workflow finish implement` failure when `README.md` exists but `README ranges read` is empty.
30
+ - Updated injection, plan prompts, next/resume output, root README, and Korean README to point agents to `npx ph workflow implement`.
31
+ - Kept `ph workflow start implement` and `ph plan --implement` as lower-level compatibility surfaces.
32
+
33
+ ## Install
34
+
35
+ ```bash
36
+ npm install -D persona-harness@alpha
37
+ npx ph init
38
+ ```
39
+
40
+ ## Supported Scope
41
+
42
+ - Java/Spring backend MVP.
43
+ - Gradle-first backend workflow.
44
+ - OpenCode plugin injection for Java/Spring backend Clean Code guidance.
45
+ - AI-facing workflow rail and report lifecycle.
46
+ - Report-only diagnostics and workflow evidence gates.
47
+
48
+ ## Not Supported
49
+
50
+ - Generated app product-quality certification.
51
+ - Rule compliance enforcement through AST/linter/build gates.
52
+ - Frontend, infra, or desktop productization.
53
+ - Full Test -> Feat -> Refactor workflow.
54
+ - `ph bearshell` sandboxing.
55
+
56
+ ## Verification
57
+
58
+ Commands run before release:
59
+
60
+ ```bash
61
+ npm test
62
+ npm run typecheck
63
+ npm run build
64
+ npm run report:rules
65
+ npm run check:scope:strict
66
+ npm run check:injection-value
67
+ npm pack --dry-run
68
+ npm publish --dry-run --tag alpha
69
+ ```
70
+
71
+ Result:
72
+
73
+ - `npm test`: pass, 36 test files and 224 tests.
74
+ - `npm run typecheck`: pass.
75
+ - `npm run build`: pass.
76
+ - `npm run report:rules`: pass, PersonaHarnessRule diagnostics PASS with 0 findings.
77
+ - `npm run check:scope:strict`: pass, MVP scope diagnostics PASS with 0 findings in STRICT mode.
78
+ - `npm run check:injection-value`: pass, current window 3/3 with expected decision `continue-java-mvp`.
79
+ - `npm pack --dry-run`: pass, 220 files, 225.5 kB package size, 864.1 kB unpacked size.
80
+ - `npm publish --dry-run --tag alpha`: pass for `persona-harness@0.3.2-alpha.0`.
81
+
82
+ ## Package Contents Notes
83
+
84
+ - Includes `dist`, `README.md`, language README files, `LICENSE`, `CHANGELOG.md`, `.persona/harness.jsonc`, `.persona/rules`, current release docs, and the Java programming shared-skill reference subset.
85
+ - Excludes generated evidence, experiments, `.persona-test-fixtures`, inactive OMO reference skills, and Java no-excuse fixture files from package contents.
86
+
87
+ ## Known Gaps
88
+
89
+ - README range coverage is evidence discipline, not semantic proof that the agent understood the README.
90
+ - OpenCode behavior still varies by model and runtime context.
91
+ - This release does not make `ph` a standalone agent runner; it is a workflow surface for OpenCode/Codex-style agents.
92
+ - codegraph-first guidance is AI-facing guidance only; Persona Harness does not install or require a codegraph MCP server.
93
+
94
+ ## Release Automation
95
+
96
+ - `[ ]` tag matches `package.json` version
97
+ - `[ ]` GitHub Actions verify job passed
98
+ - `[ ]` npm publish job passed
99
+ - `[ ]` GitHub release notes were created
100
+
101
+ ## Next
102
+
103
+ - Fresh install smoke with `persona-harness@alpha`.
104
+ - External tester retry focused on whether short TUI requests now follow `ph workflow implement`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persona-harness",
3
- "version": "0.3.1-alpha.2",
3
+ "version": "0.3.2-alpha.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.",