@pmelab/gtd 15.4.0 → 15.5.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/README.md +4 -6
- package/dist/gtd.bundle.mjs +7 -2
- package/package.json +1 -1
- package/src/workflows/steps.test.ts +1 -0
- package/src/workflows/text.test.ts +16 -0
- package/src/workflows/text.ts +5 -0
- package/src/workflows/vars.ts +2 -2
package/README.md
CHANGED
|
@@ -23,12 +23,10 @@ Or run without installing (prefix every `gtd` below with `npx`) — see
|
|
|
23
23
|
[Configuration](https://github.com/pmelab/gtd/blob/main/docs/configuration.md)
|
|
24
24
|
for the settings most projects tune.
|
|
25
25
|
|
|
26
|
-
Also install
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
`skills` key at those states, for a driver that wants to preload them; see
|
|
31
|
-
[Setup](https://github.com/pmelab/gtd/blob/main/docs/setup.md) for the details.
|
|
26
|
+
Also install all three skill sources the bundled workflow names in its prompts —
|
|
27
|
+
none is optional. See
|
|
28
|
+
[Setup](https://github.com/pmelab/gtd/blob/main/docs/setup.md) for the list, the
|
|
29
|
+
install flags, and the never-install-the-plugin caveat.
|
|
32
30
|
|
|
33
31
|
> **A repository's `gtd.config.ts` is code, and gtd runs it.** A custom workflow
|
|
34
32
|
> is a TypeScript module, and every gtd command that looks at workflow state —
|
package/dist/gtd.bundle.mjs
CHANGED
|
@@ -47920,6 +47920,9 @@ ${footnoteFoldIn}
|
|
|
47920
47920
|
the product ones, one phase earlier. PERMISSIVE: answer it
|
|
47921
47921
|
yourself unless you genuinely cannot defend a default; a wrong
|
|
47922
47922
|
technical call is still caught at spec review
|
|
47923
|
+
- The narrow exception: a simplification that drops something
|
|
47924
|
+
\`.gtd/REQUIREMENTS.md\` mentions is an open question, not a
|
|
47925
|
+
silent default
|
|
47923
47926
|
|
|
47924
47927
|
${questionBar}
|
|
47925
47928
|
## Return lap
|
|
@@ -48095,6 +48098,8 @@ const buildFixQualityPrompt = () => `${stateFileRules}
|
|
|
48095
48098
|
- Read \`.gtd/QUALITY.md\` — one \`## \` chunk per quality dimension
|
|
48096
48099
|
that found something blocking. Merge duplicate findings across
|
|
48097
48100
|
dimensions FIRST, then fix every chunk
|
|
48101
|
+
- When findings conflict, missing test signal beats line count —
|
|
48102
|
+
a test is never deleted to satisfy a simplification finding
|
|
48098
48103
|
- Delete \`.gtd/QUALITY.md\` once every finding is resolved
|
|
48099
48104
|
- Leave everything else uncommitted and finish your turn
|
|
48100
48105
|
`;
|
|
@@ -49005,7 +49010,7 @@ const defaults = {
|
|
|
49005
49010
|
reviewNoteActionable: "0.7",
|
|
49006
49011
|
architectureSkipMinP: "0.85",
|
|
49007
49012
|
triageSkills: "spec-driven-development, planning-and-task-breakdown",
|
|
49008
|
-
architectureSkills: "api-and-interface-design, documentation-and-adrs",
|
|
49013
|
+
architectureSkills: "api-and-interface-design, documentation-and-adrs, ponytail",
|
|
49009
49014
|
decomposeSkills: "incremental-implementation, planning-and-task-breakdown",
|
|
49010
49015
|
buildSkills: "test-driven-development, incremental-implementation",
|
|
49011
49016
|
fixSkills: "debugging-and-error-recovery",
|
|
@@ -49013,7 +49018,7 @@ const defaults = {
|
|
|
49013
49018
|
reviewSkills: "code-review-and-quality",
|
|
49014
49019
|
specReviewSkills: "code-review-and-quality, spec-driven-development",
|
|
49015
49020
|
escalateSkills: "debugging-and-error-recovery",
|
|
49016
|
-
qualityReviews: "owasp-security,
|
|
49021
|
+
qualityReviews: "owasp-security, ponytail-review, test-audit"
|
|
49017
49022
|
};
|
|
49018
49023
|
//#endregion
|
|
49019
49024
|
//#region src/workflows/unified.ts
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import { describe, expect, it } from "vitest"
|
|
|
2
2
|
import {
|
|
3
3
|
agentWithSkills,
|
|
4
4
|
architectureAuthorPrompt,
|
|
5
|
+
buildFixQualityPrompt,
|
|
5
6
|
designTriagePrompt,
|
|
6
7
|
splitSkills,
|
|
7
8
|
summaryPrompt,
|
|
@@ -103,6 +104,21 @@ describe("the shared open-question instruction", () => {
|
|
|
103
104
|
})
|
|
104
105
|
})
|
|
105
106
|
|
|
107
|
+
describe("architectureAuthorPrompt", () => {
|
|
108
|
+
it("qualifies the PERMISSIVE default with a settled-requirements exception", () => {
|
|
109
|
+
const prompt = renderText(() => architectureAuthorPrompt())
|
|
110
|
+
expect(prompt).toContain("is an open question, not a")
|
|
111
|
+
})
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
describe("buildFixQualityPrompt", () => {
|
|
115
|
+
it("states the missing-test-signal-beats-line-count tiebreak", () => {
|
|
116
|
+
const prompt = renderText(() => buildFixQualityPrompt())
|
|
117
|
+
expect(prompt).toContain("missing test signal beats line count")
|
|
118
|
+
expect(prompt).toContain("a test is never deleted to satisfy a simplification finding")
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
|
|
106
122
|
describe("summaryPrompt", () => {
|
|
107
123
|
it("puts the total and every model's cost on a line of its own", () => {
|
|
108
124
|
const prompt = summaryPrompt({
|
package/src/workflows/text.ts
CHANGED
|
@@ -267,6 +267,9 @@ ${footnoteFoldIn}
|
|
|
267
267
|
the product ones, one phase earlier. PERMISSIVE: answer it
|
|
268
268
|
yourself unless you genuinely cannot defend a default; a wrong
|
|
269
269
|
technical call is still caught at spec review
|
|
270
|
+
- The narrow exception: a simplification that drops something
|
|
271
|
+
\`.gtd/REQUIREMENTS.md\` mentions is an open question, not a
|
|
272
|
+
silent default
|
|
270
273
|
|
|
271
274
|
${questionBar}
|
|
272
275
|
## Return lap
|
|
@@ -485,6 +488,8 @@ export const buildFixQualityPrompt = (): string =>
|
|
|
485
488
|
- Read \`.gtd/QUALITY.md\` — one \`## \` chunk per quality dimension
|
|
486
489
|
that found something blocking. Merge duplicate findings across
|
|
487
490
|
dimensions FIRST, then fix every chunk
|
|
491
|
+
- When findings conflict, missing test signal beats line count —
|
|
492
|
+
a test is never deleted to satisfy a simplification finding
|
|
488
493
|
- Delete \`.gtd/QUALITY.md\` once every finding is resolved
|
|
489
494
|
- Leave everything else uncommitted and finish your turn
|
|
490
495
|
`
|
package/src/workflows/vars.ts
CHANGED
|
@@ -11,7 +11,7 @@ export const defaults: Readonly<Record<string, string>> = {
|
|
|
11
11
|
reviewNoteActionable: "0.7",
|
|
12
12
|
architectureSkipMinP: "0.85",
|
|
13
13
|
triageSkills: "spec-driven-development, planning-and-task-breakdown",
|
|
14
|
-
architectureSkills: "api-and-interface-design, documentation-and-adrs",
|
|
14
|
+
architectureSkills: "api-and-interface-design, documentation-and-adrs, ponytail",
|
|
15
15
|
decomposeSkills: "incremental-implementation, planning-and-task-breakdown",
|
|
16
16
|
buildSkills: "test-driven-development, incremental-implementation",
|
|
17
17
|
fixSkills: "debugging-and-error-recovery",
|
|
@@ -19,5 +19,5 @@ export const defaults: Readonly<Record<string, string>> = {
|
|
|
19
19
|
reviewSkills: "code-review-and-quality",
|
|
20
20
|
specReviewSkills: "code-review-and-quality, spec-driven-development",
|
|
21
21
|
escalateSkills: "debugging-and-error-recovery",
|
|
22
|
-
qualityReviews: "owasp-security,
|
|
22
|
+
qualityReviews: "owasp-security, ponytail-review, test-audit",
|
|
23
23
|
}
|