persona-harness 0.3.2-alpha.0 → 0.3.2-alpha.2
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 +26 -0
- package/README.ko.md +18 -3
- package/README.md +16 -9
- package/dist/cli/init.js +21 -4
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/intake-profile.d.ts +2 -1
- package/dist/cli/intake-profile.js +8 -1
- package/dist/cli/intake-profile.js.map +1 -1
- package/dist/cli/intake.d.ts +1 -0
- package/dist/cli/intake.js +54 -7
- package/dist/cli/intake.js.map +1 -1
- package/dist/cli/plan-command.js +25 -1
- package/dist/cli/plan-command.js.map +1 -1
- package/dist/cli/plan.js +13 -1
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/workflow-command.js +5 -0
- package/dist/cli/workflow-command.js.map +1 -1
- package/dist/cli/workflow-output.js +9 -7
- package/dist/cli/workflow-output.js.map +1 -1
- package/dist/cli/workflow-status.js +19 -7
- package/dist/cli/workflow-status.js.map +1 -1
- package/dist/phase0/injection.js +12 -1
- package/dist/phase0/injection.js.map +1 -1
- package/dist/phase0/java-role-discovery.js +4 -2
- package/dist/phase0/java-role-discovery.js.map +1 -1
- package/dist/phase0/project-profile.d.ts +6 -0
- package/dist/phase0/project-profile.js +54 -0
- package/dist/phase0/project-profile.js.map +1 -1
- package/docs/current/release/README.md +2 -0
- package/docs/current/release/next-version-readiness.md +30 -21
- package/docs/current/release/v0.3.2-alpha.1-release-notes.md +83 -0
- package/docs/current/release/v0.3.2-alpha.2-release-notes.md +84 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,12 +6,38 @@ This project uses npm prerelease versions for tester-facing alpha builds. During
|
|
|
6
6
|
|
|
7
7
|
## Unreleased
|
|
8
8
|
|
|
9
|
+
### Known Gaps
|
|
10
|
+
|
|
11
|
+
## [0.3.2-alpha.2] - 2026-06-22
|
|
12
|
+
|
|
9
13
|
### Added
|
|
10
14
|
|
|
15
|
+
- Added a profile-required implementation gate: `ph plan` and `ph workflow implement` now stop when `.persona/project-profile.jsonc` is missing, draft, invalid, or incomplete.
|
|
16
|
+
- Added `ph intake --default backend` for a ready backend profile without an interactive terminal.
|
|
17
|
+
- Added default backend profile creation during `ph init`, so a clean install can move straight to `ph plan --auto-accept` unless the user wants to customize intake answers.
|
|
18
|
+
- Added `ph plan --auto-accept` as a faster planning path for users who do not want a separate manual accept step during alpha smoke tests.
|
|
19
|
+
- Added Java role-discovery guidance to `ph workflow implement` so generated Java files can be surfaced through `npx ph bearshell --shell 'find ...*.java...'` and picked up by existing role-discovery evidence.
|
|
20
|
+
|
|
11
21
|
### Changed
|
|
12
22
|
|
|
23
|
+
- Updated fast-path guidance so implementation starts through `npx ph workflow implement` only after the profile and accepted workflow plan exist.
|
|
24
|
+
- Updated the implementation report template with Java role discovery/read evidence fields.
|
|
25
|
+
|
|
13
26
|
### Known Gaps
|
|
14
27
|
|
|
28
|
+
- Java role discovery depends on the agent following the `ph workflow implement` rail after generating files; file creation alone is not treated as proof that every generated Java file was read.
|
|
29
|
+
|
|
30
|
+
## [0.3.2-alpha.1] - 2026-06-22
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Fixed README read coverage parsing so `ph workflow check` and `ph workflow finish implement` accept ranges recorded under a `## README ranges read` heading, not only the older `- README ranges read:` field shape.
|
|
35
|
+
|
|
36
|
+
### Notes
|
|
37
|
+
|
|
38
|
+
- `0.3.2-alpha.0` was published, but fresh install smoke found this parser gap before external tester handoff.
|
|
39
|
+
- This hotfix keeps the same Java/Spring backend MVP scope and only patches the workflow evidence parser.
|
|
40
|
+
|
|
15
41
|
## [0.3.2-alpha.0] - 2026-06-22
|
|
16
42
|
|
|
17
43
|
### Added
|
package/README.ko.md
CHANGED
|
@@ -82,13 +82,25 @@ opencode run --dir . --model <model> --dangerously-skip-permissions \
|
|
|
82
82
|
"$(npx ph plan --prompt)"
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
빠른 alpha smoke에서는 기본 backend profile을 그대로 쓰고 계획을 바로 accepted 상태로 만들 수 있습니다.
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
npx ph
|
|
88
|
+
npx ph doctor
|
|
89
|
+
npx ph policy init
|
|
90
|
+
npx ph plan --auto-accept
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
프로젝트 조건을 직접 정하고 싶으면 기본 profile을 인터뷰로 덮어씁니다.
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npx ph intake --interactive --force
|
|
97
|
+
npx ph policy init
|
|
98
|
+
npx ph plan
|
|
89
99
|
npx ph plan --accept
|
|
90
100
|
```
|
|
91
101
|
|
|
102
|
+
`.persona/project-profile.jsonc`가 없거나 draft/invalid/incomplete 상태면 `ph plan`과 `ph workflow implement`는 구현으로 넘어가지 않고 intake부터 하라고 막습니다.
|
|
103
|
+
|
|
92
104
|
그 다음에는 짧게 구현을 요청합니다.
|
|
93
105
|
|
|
94
106
|
```text
|
|
@@ -105,10 +117,13 @@ opencode run --dir . --model <model> --dangerously-skip-permissions \
|
|
|
105
117
|
## 제공하는 것
|
|
106
118
|
|
|
107
119
|
- 아래 명령어들은 사용자가 직접 외우는 CLI라기보다, OpenCode/Codex-style 세션에서 AI가 호출하기 쉽게 만든 workflow surface입니다.
|
|
108
|
-
- `ph init`: `.persona/rules`, `.persona/harness.jsonc`, OpenCode plugin config 설치
|
|
120
|
+
- `ph init`: `.persona/rules`, `.persona/harness.jsonc`, OpenCode plugin config 설치 + ready 기본 backend profile 생성
|
|
121
|
+
- `ph intake`: 수정 가능한 draft backend profile 생성
|
|
122
|
+
- `ph intake --default backend`: 대화형 터미널 없이 ready 기본 backend profile 생성
|
|
109
123
|
- `ph intake --interactive`: backend planning 질문 후 `.persona/project-profile.jsonc` 생성
|
|
110
124
|
- `ph policy init`: 회사/개인 backend policy overlay 파일 생성
|
|
111
125
|
- `ph plan`: `blackbear` planning role용 `.persona/workflow/plan.md` 생성
|
|
126
|
+
- `ph plan --auto-accept`: 빠른 smoke를 위해 plan/report template 생성 후 plan을 accepted 처리
|
|
112
127
|
- `ph bearshell`: bounded shell command helper
|
|
113
128
|
- `ph history`: 사용한 workflow artifact를 `.persona/workflow/history/`에 보존
|
|
114
129
|
- `ph workflow check`: 현재 plan/report/evidence 상태 확인
|
package/README.md
CHANGED
|
@@ -151,23 +151,28 @@ You can use a different domain. For cleaner feedback, avoid the older `reservati
|
|
|
151
151
|
|
|
152
152
|
## 4. Create Intake, Policy, And Plan Files
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
`npx ph init` creates a ready default backend profile at `.persona/project-profile.jsonc`.
|
|
155
|
+
That default is only a planning convenience; customize it when the project context matters.
|
|
156
|
+
|
|
157
|
+
For the fastest alpha smoke:
|
|
155
158
|
|
|
156
159
|
```bash
|
|
157
|
-
npx ph
|
|
160
|
+
npx ph doctor
|
|
158
161
|
npx ph policy init
|
|
159
|
-
npx ph plan
|
|
160
|
-
npx ph plan --accept
|
|
162
|
+
npx ph plan --auto-accept
|
|
161
163
|
npx ph workflow check
|
|
162
164
|
```
|
|
163
165
|
|
|
164
|
-
For a more realistic project setup,
|
|
166
|
+
For a more realistic project setup, replace the default profile through the interview:
|
|
165
167
|
|
|
166
168
|
```bash
|
|
167
|
-
npx ph intake --interactive
|
|
169
|
+
npx ph intake --interactive --force
|
|
170
|
+
npx ph policy init
|
|
171
|
+
npx ph plan
|
|
172
|
+
npx ph plan --accept
|
|
168
173
|
```
|
|
169
174
|
|
|
170
|
-
Before implementation, `npx ph workflow check` usually reports `WARN` because implementation and review reports are still templates. That is normal.
|
|
175
|
+
If `.persona/project-profile.jsonc` is missing, draft, malformed, or incomplete, `ph plan` and `ph workflow implement` stop and ask for `ph intake` first. Before implementation, `npx ph workflow check` usually reports `WARN` because implementation and review reports are still templates. That is normal.
|
|
171
176
|
|
|
172
177
|
## 5. Ask OpenCode To Implement
|
|
173
178
|
|
|
@@ -251,11 +256,13 @@ For generated code shape, look for:
|
|
|
251
256
|
|
|
252
257
|
These commands are intentionally visible so AI agents can call them from OpenCode/Codex-style sessions.
|
|
253
258
|
|
|
254
|
-
- `ph init`: installs `.persona/rules`, `.persona/harness.jsonc`,
|
|
255
|
-
- `ph intake`: creates
|
|
259
|
+
- `ph init`: installs `.persona/rules`, `.persona/harness.jsonc`, OpenCode plugin config, and a ready default backend profile for the Java/Spring backend MVP fast path.
|
|
260
|
+
- `ph intake`: creates an editable draft backend profile.
|
|
261
|
+
- `ph intake --default backend`: creates a ready default backend profile without an interactive terminal.
|
|
256
262
|
- `ph intake --interactive`: asks backend planning questions and writes `.persona/project-profile.jsonc`.
|
|
257
263
|
- `ph policy init`: creates company and personal backend policy overlay files.
|
|
258
264
|
- `ph plan`: creates `.persona/workflow/plan.md`.
|
|
265
|
+
- `ph plan --auto-accept`: creates workflow plan/report templates and marks the plan accepted for a fast smoke.
|
|
259
266
|
- `ph plan --accept`: marks the plan accepted.
|
|
260
267
|
- `ph plan --implement`: checks that implementation may start and prints the implementation rail.
|
|
261
268
|
- `ph bearshell`: runs timeout-bounded and output-bounded shell commands.
|
package/dist/cli/init.js
CHANGED
|
@@ -3,6 +3,7 @@ import { cpSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync
|
|
|
3
3
|
import { dirname, isAbsolute, join, resolve, sep } from "node:path";
|
|
4
4
|
import process from "node:process";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { createBackendProfile, createDefaultBackendAnswers, PROFILE_PATH } from "./intake-profile.js";
|
|
6
7
|
class PersonaInitError extends Error {
|
|
7
8
|
constructor(message) {
|
|
8
9
|
super(message);
|
|
@@ -142,6 +143,15 @@ function writeProjectNoiseIgnore(projectDir) {
|
|
|
142
143
|
const nextContent = `${existing}${prefix}${[...sectionHeader, ...missingEntries].join("\n")}\n`;
|
|
143
144
|
writeFileSync(gitignorePath, nextContent);
|
|
144
145
|
}
|
|
146
|
+
function writeDefaultBackendProfile(projectDir) {
|
|
147
|
+
const profilePath = join(projectDir, PROFILE_PATH);
|
|
148
|
+
if (existsSync(profilePath)) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
mkdirSync(dirname(profilePath), { recursive: true });
|
|
152
|
+
writeFileSync(profilePath, `${JSON.stringify(createBackendProfile(createDefaultBackendAnswers(), "Default backend profile created by Persona Harness init."), null, 2)}\n`);
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
145
155
|
function normalizeTemplateRelativePath(sourcePath, sourceRoot) {
|
|
146
156
|
return sourcePath === sourceRoot ? "" : sourcePath.slice(sourceRoot.length + sep.length).replace(/\\/g, "/");
|
|
147
157
|
}
|
|
@@ -172,11 +182,18 @@ export function initializePersonaHarness(options = {}) {
|
|
|
172
182
|
});
|
|
173
183
|
const backups = writeOpencodeConfig(projectDir, pluginPath);
|
|
174
184
|
writeProjectNoiseIgnore(projectDir);
|
|
185
|
+
const profileCreated = writeDefaultBackendProfile(projectDir);
|
|
175
186
|
return {
|
|
176
187
|
projectDir,
|
|
177
188
|
packageRoot,
|
|
178
189
|
pluginPath: isAbsolute(pluginPath) ? pluginPath : resolve(pluginPath),
|
|
179
|
-
installed: [
|
|
190
|
+
installed: [
|
|
191
|
+
".persona/harness.jsonc",
|
|
192
|
+
".persona/rules/",
|
|
193
|
+
...(profileCreated ? [PROFILE_PATH] : []),
|
|
194
|
+
".opencode/opencode.json",
|
|
195
|
+
".gitignore",
|
|
196
|
+
],
|
|
180
197
|
backups,
|
|
181
198
|
evidenceCopied: false,
|
|
182
199
|
};
|
|
@@ -191,10 +208,10 @@ export function formatInitResult(result) {
|
|
|
191
208
|
...backupLines,
|
|
192
209
|
"",
|
|
193
210
|
"Next:",
|
|
194
|
-
"1.
|
|
211
|
+
"1. A default backend profile is ready. Customize it with `npx ph intake --interactive --force` if needed.",
|
|
195
212
|
"2. Run `npx ph policy init` if you want company or personal backend guidance.",
|
|
196
|
-
"3. Run `npx ph plan
|
|
197
|
-
"4.
|
|
213
|
+
"3. Run `npx ph plan --auto-accept` for the fastest flow, or `npx ph plan` for manual review.",
|
|
214
|
+
"4. Ask the agent to implement only through `npx ph workflow implement`.",
|
|
198
215
|
"",
|
|
199
216
|
"OpenCode TUI:",
|
|
200
217
|
"- Run `opencode` in this project.",
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAChG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AACnE,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export type ProjectProfileQuestion = {
|
|
|
6
6
|
};
|
|
7
7
|
export type ProjectProfile = {
|
|
8
8
|
readonly schema: "persona.project-profile.v1";
|
|
9
|
-
readonly status: "draft";
|
|
9
|
+
readonly status: "draft" | "ready";
|
|
10
10
|
readonly scope: {
|
|
11
11
|
readonly role: "backend";
|
|
12
12
|
readonly mvp: "java-spring-clean-code";
|
|
@@ -48,5 +48,6 @@ export type IntakeQuestionDefinition = {
|
|
|
48
48
|
};
|
|
49
49
|
export declare const PROFILE_PATH = ".persona/project-profile.jsonc";
|
|
50
50
|
export declare const INTAKE_QUESTIONS: readonly IntakeQuestionDefinition[];
|
|
51
|
+
export declare function createDefaultBackendAnswers(): ReadonlyMap<string, string>;
|
|
51
52
|
export declare function createBackendProfile(answers?: ReadonlyMap<string, string>, projectNote?: string | null): ProjectProfile;
|
|
52
53
|
export {};
|
|
@@ -139,10 +139,17 @@ export const INTAKE_QUESTIONS = [
|
|
|
139
139
|
recommended: "strict",
|
|
140
140
|
},
|
|
141
141
|
];
|
|
142
|
+
export function createDefaultBackendAnswers() {
|
|
143
|
+
return new Map(INTAKE_QUESTIONS.map((question) => [question.id, question.recommended]));
|
|
144
|
+
}
|
|
142
145
|
export function createBackendProfile(answers = new Map(), projectNote = null) {
|
|
146
|
+
const isReady = INTAKE_QUESTIONS.every((question) => {
|
|
147
|
+
const answer = answers.get(question.id);
|
|
148
|
+
return answer !== undefined && answer.trim() !== "";
|
|
149
|
+
});
|
|
143
150
|
return {
|
|
144
151
|
schema: "persona.project-profile.v1",
|
|
145
|
-
status: "draft",
|
|
152
|
+
status: isReady ? "ready" : "draft",
|
|
146
153
|
scope: {
|
|
147
154
|
role: "backend",
|
|
148
155
|
mvp: "java-spring-clean-code",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intake-profile.js","sourceRoot":"","sources":["../../src/cli/intake-profile.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"intake-profile.js","sourceRoot":"","sources":["../../src/cli/intake-profile.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/intake.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type InteractiveIntakeOptions = IntakeOptions & {
|
|
|
9
9
|
};
|
|
10
10
|
export declare function intakeUsage(invocation?: string): string;
|
|
11
11
|
export declare function initializeProjectIntake(options?: IntakeOptions, force?: boolean): string;
|
|
12
|
+
export declare function initializeDefaultBackendIntake(options?: IntakeOptions, force?: boolean): string;
|
|
12
13
|
export declare function runInteractiveIntakeCommand(args: readonly string[], options: InteractiveIntakeOptions, invocationName?: string): Promise<CliRunResult>;
|
|
13
14
|
export declare function runIntakeCommand(args: readonly string[], options?: IntakeOptions, invocationName?: string): CliRunResult;
|
|
14
15
|
export {};
|
package/dist/cli/intake.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join, resolve } from "node:path";
|
|
3
3
|
import process from "node:process";
|
|
4
|
-
import { INTAKE_QUESTIONS, PROFILE_PATH, createBackendProfile } from "./intake-profile.js";
|
|
4
|
+
import { INTAKE_QUESTIONS, PROFILE_PATH, createBackendProfile, createDefaultBackendAnswers, } from "./intake-profile.js";
|
|
5
5
|
export function intakeUsage(invocation = "ph") {
|
|
6
6
|
return [
|
|
7
|
-
`Usage: ${invocation} intake [--force | --interactive]`,
|
|
7
|
+
`Usage: ${invocation} intake [--force | --interactive | --default backend]`,
|
|
8
8
|
"",
|
|
9
9
|
"Creates a draft backend project profile for the v0.3.0 intake workflow.",
|
|
10
10
|
"",
|
|
@@ -21,7 +21,9 @@ export function intakeUsage(invocation = "ph") {
|
|
|
21
21
|
function parseIntakeArgs(args) {
|
|
22
22
|
let force = false;
|
|
23
23
|
let interactive = false;
|
|
24
|
-
|
|
24
|
+
let defaultBackend = false;
|
|
25
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
26
|
+
const arg = args[index];
|
|
25
27
|
if (arg === "--help" || arg === "-h") {
|
|
26
28
|
return { kind: "help" };
|
|
27
29
|
}
|
|
@@ -33,9 +35,20 @@ function parseIntakeArgs(args) {
|
|
|
33
35
|
interactive = true;
|
|
34
36
|
continue;
|
|
35
37
|
}
|
|
38
|
+
if (arg === "--default") {
|
|
39
|
+
if (args[index + 1] !== "backend") {
|
|
40
|
+
return { kind: "invalid", message: "--default requires backend." };
|
|
41
|
+
}
|
|
42
|
+
defaultBackend = true;
|
|
43
|
+
index += 1;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
36
46
|
return { kind: "invalid", message: `Unknown option: ${arg}` };
|
|
37
47
|
}
|
|
38
|
-
|
|
48
|
+
if (interactive && defaultBackend) {
|
|
49
|
+
return { kind: "invalid", message: "--interactive and --default backend cannot be used together." };
|
|
50
|
+
}
|
|
51
|
+
return { kind: "run", force, interactive, defaultBackend };
|
|
39
52
|
}
|
|
40
53
|
function resolveProfilePath(options) {
|
|
41
54
|
const projectDir = resolve(options.projectDir ?? process.cwd());
|
|
@@ -57,6 +70,11 @@ export function initializeProjectIntake(options = {}, force = false) {
|
|
|
57
70
|
writeProfile(profilePath, new Map(), null);
|
|
58
71
|
return profilePath;
|
|
59
72
|
}
|
|
73
|
+
export function initializeDefaultBackendIntake(options = {}, force = false) {
|
|
74
|
+
const profilePath = ensureWritableProfile(options, force);
|
|
75
|
+
writeProfile(profilePath, createDefaultBackendAnswers(), "Default backend profile created by Persona Harness.");
|
|
76
|
+
return profilePath;
|
|
77
|
+
}
|
|
60
78
|
function introText() {
|
|
61
79
|
return [
|
|
62
80
|
"Persona Harness backend project intake",
|
|
@@ -156,9 +174,8 @@ export async function runInteractiveIntakeCommand(args, options, invocationName
|
|
|
156
174
|
`Profile: ${profilePath}`,
|
|
157
175
|
"",
|
|
158
176
|
"Next:",
|
|
159
|
-
"- Run npx ph plan.",
|
|
160
|
-
"-
|
|
161
|
-
"- Ask the agent to implement only after the plan is accepted.",
|
|
177
|
+
"- Run npx ph plan --auto-accept for the fastest backend MVP flow, or npx ph plan for manual review.",
|
|
178
|
+
"- Ask the agent to implement only through npx ph workflow implement.",
|
|
162
179
|
"",
|
|
163
180
|
].join("\n"));
|
|
164
181
|
return { status: 0, stdout: "", stderr: "" };
|
|
@@ -178,6 +195,36 @@ export function runIntakeCommand(args, options = {}, invocationName = "ph") {
|
|
|
178
195
|
stderr: "Interactive intake requires a TTY. Use `npx ph intake` to create an editable draft.\n",
|
|
179
196
|
};
|
|
180
197
|
}
|
|
198
|
+
if (parsed.defaultBackend) {
|
|
199
|
+
try {
|
|
200
|
+
const profilePath = initializeDefaultBackendIntake(options, parsed.force);
|
|
201
|
+
return {
|
|
202
|
+
status: 0,
|
|
203
|
+
stdout: [
|
|
204
|
+
"Persona Harness default backend project profile created.",
|
|
205
|
+
"",
|
|
206
|
+
`Profile: ${profilePath}`,
|
|
207
|
+
"Status: ready",
|
|
208
|
+
"",
|
|
209
|
+
"Next:",
|
|
210
|
+
"- Run npx ph plan --auto-accept for the fastest backend MVP flow, or npx ph intake --interactive --force to customize.",
|
|
211
|
+
"- Ask the agent to implement only through npx ph workflow implement.",
|
|
212
|
+
"",
|
|
213
|
+
"Scope:",
|
|
214
|
+
"- Java/Spring backend Clean Code planning surface",
|
|
215
|
+
"- Default profile is a planning convenience, not product-quality certification",
|
|
216
|
+
].join("\n") + "\n",
|
|
217
|
+
stderr: "",
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
return {
|
|
222
|
+
status: 1,
|
|
223
|
+
stdout: "",
|
|
224
|
+
stderr: `${error instanceof Error ? error.message : String(error)}\n`,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
181
228
|
try {
|
|
182
229
|
const profilePath = initializeProjectIntake(options, parsed.force);
|
|
183
230
|
return {
|
package/dist/cli/intake.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intake.js","sourceRoot":"","sources":["../../src/cli/intake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,OAAO,MAAM,cAAc,CAAA;AAGlC,OAAO,
|
|
1
|
+
{"version":3,"file":"intake.js","sourceRoot":"","sources":["../../src/cli/intake.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/plan-command.js
CHANGED
|
@@ -8,12 +8,14 @@ import { createImplementationPrompt, createPlanOnlyPrompt } from "./plan-prompts
|
|
|
8
8
|
import { WorkflowReportStatusError, parseWorkflowReportKind, updateWorkflowReportStatus, } from "./report-status.js";
|
|
9
9
|
export function planUsage(invocation = "ph") {
|
|
10
10
|
return [
|
|
11
|
-
`Usage: ${invocation} plan [--force | --status | --accept | --revise | --prompt | --implement | --next | --resume | --report-filled <implementation|review>]`,
|
|
11
|
+
`Usage: ${invocation} plan [--force | --auto-accept | --status | --accept | --revise | --prompt | --implement | --next | --resume | --report-filled <implementation|review>]`,
|
|
12
12
|
"",
|
|
13
13
|
"Creates and manages a blackbear architecture plan before implementation.",
|
|
14
14
|
"",
|
|
15
15
|
"Options:",
|
|
16
16
|
" --force Replace existing workflow drafts.",
|
|
17
|
+
" --auto-accept",
|
|
18
|
+
" Create workflow drafts and mark the plan accepted for the fastest backend MVP flow.",
|
|
17
19
|
" --status Read the plan acceptance status.",
|
|
18
20
|
" --accept Mark the plan status as accepted.",
|
|
19
21
|
" --revise Mark the plan status as needs-revision.",
|
|
@@ -58,6 +60,9 @@ function parsePlanArgs(args) {
|
|
|
58
60
|
if (arg === "--force") {
|
|
59
61
|
return { kind: "run", force: true };
|
|
60
62
|
}
|
|
63
|
+
if (arg === "--auto-accept") {
|
|
64
|
+
return { kind: "auto-accept", force: true };
|
|
65
|
+
}
|
|
61
66
|
if (arg === "--status") {
|
|
62
67
|
return { kind: "status" };
|
|
63
68
|
}
|
|
@@ -191,6 +196,25 @@ export function runPlanCommand(args, options = {}, invocationName = "ph") {
|
|
|
191
196
|
if (parsed.kind === "resume") {
|
|
192
197
|
return runResumeCommand(options);
|
|
193
198
|
}
|
|
199
|
+
if (parsed.kind === "auto-accept") {
|
|
200
|
+
const planPath = initializeWorkflowPlan(options, parsed.force);
|
|
201
|
+
const accepted = updateWorkflowPlanStatus("accepted", options);
|
|
202
|
+
return {
|
|
203
|
+
status: 0,
|
|
204
|
+
stdout: [
|
|
205
|
+
"Persona Harness blackbear plan draft created and accepted.",
|
|
206
|
+
"",
|
|
207
|
+
`Plan: ${planPath}`,
|
|
208
|
+
`Status: ${accepted.status}`,
|
|
209
|
+
"",
|
|
210
|
+
"Next:",
|
|
211
|
+
"- Run `npx ph workflow implement` before implementation.",
|
|
212
|
+
`- Fill ${IMPLEMENTATION_REPORT_PATH} after implementation, then run \`npx ph plan --report-filled implementation\`.`,
|
|
213
|
+
`- Fill ${REVIEW_REPORT_PATH} after review/manual QA, then run \`npx ph plan --report-filled review\`.`,
|
|
214
|
+
].join("\n") + "\n",
|
|
215
|
+
stderr: "",
|
|
216
|
+
};
|
|
217
|
+
}
|
|
194
218
|
const planPath = initializeWorkflowPlan(options, parsed.force);
|
|
195
219
|
return {
|
|
196
220
|
status: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-command.js","sourceRoot":"","sources":["../../src/cli/plan-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAGlC,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EACL,eAAe,EAEf,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,GAE3B,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"plan-command.js","sourceRoot":"","sources":["../../src/cli/plan-command.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/plan.js
CHANGED
|
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
2
2
|
import { join, resolve } from "node:path";
|
|
3
3
|
import process from "node:process";
|
|
4
4
|
import { loadBackendPolicyOverlay } from "../phase0/policy-overlay.js";
|
|
5
|
-
import { loadBackendProjectProfileSummary } from "../phase0/project-profile.js";
|
|
5
|
+
import { loadBackendProjectProfileSummary, readBackendProjectProfileState } from "../phase0/project-profile.js";
|
|
6
6
|
export class PlanDraftError extends Error {
|
|
7
7
|
constructor(message) {
|
|
8
8
|
super(message);
|
|
@@ -112,6 +112,9 @@ function createImplementationReportTemplate(projectDir) {
|
|
|
112
112
|
"- README ranges read:",
|
|
113
113
|
"- Plan read method:",
|
|
114
114
|
"- Plan ranges read:",
|
|
115
|
+
"- Java role discovery method:",
|
|
116
|
+
"- Java role files discovered:",
|
|
117
|
+
"- Java role files read:",
|
|
115
118
|
"- Unread ranges:",
|
|
116
119
|
"- Read evidence notes:",
|
|
117
120
|
"",
|
|
@@ -207,6 +210,15 @@ function existingWorkflowPaths(projectDir) {
|
|
|
207
210
|
}
|
|
208
211
|
export function initializeWorkflowPlan(options = {}, force = false) {
|
|
209
212
|
const projectDir = resolve(options.projectDir ?? process.cwd());
|
|
213
|
+
const profileState = readBackendProjectProfileState(projectDir);
|
|
214
|
+
if (profileState.status !== "ready") {
|
|
215
|
+
throw new PlanDraftError([
|
|
216
|
+
"Project profile is required before planning.",
|
|
217
|
+
profileState.message,
|
|
218
|
+
"Fast path: run `npx ph intake --default backend --force`.",
|
|
219
|
+
"Custom path: run `npx ph intake --interactive --force`.",
|
|
220
|
+
].join("\n"));
|
|
221
|
+
}
|
|
210
222
|
const workflowDir = join(projectDir, ".persona", "workflow");
|
|
211
223
|
const planPath = join(projectDir, PLAN_PATH);
|
|
212
224
|
const implementationReportPath = join(projectDir, IMPLEMENTATION_REPORT_PATH);
|
package/dist/cli/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAA;AAI/
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/cli/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readBackendProjectProfileState } from "../phase0/project-profile.js";
|
|
1
2
|
import { failedGuardOutput, failedRunnerOutput, passedFinishOutput, passedGuardOutput, passedImplementOutput, passedStartOutput, } from "./workflow-output.js";
|
|
2
3
|
import { formatWorkflowStatus, readWorkflowStatus } from "./workflow-status.js";
|
|
3
4
|
export function workflowUsage(invocation = "ph") {
|
|
@@ -55,6 +56,10 @@ function parseWorkflowArgs(args) {
|
|
|
55
56
|
}
|
|
56
57
|
function implementationGuardReasons(summary) {
|
|
57
58
|
const reasons = [];
|
|
59
|
+
const profileState = readBackendProjectProfileState(summary.projectDir);
|
|
60
|
+
if (profileState.status !== "ready") {
|
|
61
|
+
reasons.push(profileState.message);
|
|
62
|
+
}
|
|
58
63
|
if (summary.plan !== "accepted") {
|
|
59
64
|
reasons.push(".persona/workflow/plan.md must be accepted");
|
|
60
65
|
}
|