frontend-harness 0.1.0 → 0.2.1

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.
Files changed (81) hide show
  1. package/AGENTS.md +17 -5
  2. package/CLAUDE.md +17 -5
  3. package/README.md +65 -11
  4. package/dist/cli/index.js +166 -11
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/runtime/builtin-skills.js +10 -1
  7. package/dist/runtime/builtin-skills.js.map +1 -1
  8. package/dist/runtime/clean.js +6 -1
  9. package/dist/runtime/clean.js.map +1 -1
  10. package/dist/runtime/command-taxonomy.js +12 -1
  11. package/dist/runtime/command-taxonomy.js.map +1 -1
  12. package/dist/runtime/common/naming.d.ts +2 -0
  13. package/dist/runtime/common/naming.js +13 -0
  14. package/dist/runtime/common/naming.js.map +1 -0
  15. package/dist/runtime/common/parsing.d.ts +11 -0
  16. package/dist/runtime/common/parsing.js +30 -0
  17. package/dist/runtime/common/parsing.js.map +1 -0
  18. package/dist/runtime/common/text.d.ts +1 -0
  19. package/dist/runtime/common/text.js +4 -0
  20. package/dist/runtime/common/text.js.map +1 -0
  21. package/dist/runtime/context.js +3 -2
  22. package/dist/runtime/context.js.map +1 -1
  23. package/dist/runtime/graph.js +1 -1
  24. package/dist/runtime/graph.js.map +1 -1
  25. package/dist/runtime/knowledge.d.ts +136 -1
  26. package/dist/runtime/knowledge.js +658 -17
  27. package/dist/runtime/knowledge.js.map +1 -1
  28. package/dist/runtime/plan/component-resolver.d.ts +8 -0
  29. package/dist/runtime/plan/component-resolver.js +350 -0
  30. package/dist/runtime/plan/component-resolver.js.map +1 -0
  31. package/dist/runtime/plan/guidance.d.ts +3 -0
  32. package/dist/runtime/plan/guidance.js +143 -0
  33. package/dist/runtime/plan/guidance.js.map +1 -0
  34. package/dist/runtime/plan/proposal.d.ts +2 -0
  35. package/dist/runtime/plan/proposal.js +251 -0
  36. package/dist/runtime/plan/proposal.js.map +1 -0
  37. package/dist/runtime/plan/workflow.d.ts +8 -0
  38. package/dist/runtime/plan/workflow.js +234 -0
  39. package/dist/runtime/plan/workflow.js.map +1 -0
  40. package/dist/runtime/plan.d.ts +4 -3
  41. package/dist/runtime/plan.js +163 -445
  42. package/dist/runtime/plan.js.map +1 -1
  43. package/dist/runtime/policy-provenance.js +30 -17
  44. package/dist/runtime/policy-provenance.js.map +1 -1
  45. package/dist/runtime/project-discovery.js +12 -4
  46. package/dist/runtime/project-discovery.js.map +1 -1
  47. package/dist/runtime/project-paths.js +5 -2
  48. package/dist/runtime/project-paths.js.map +1 -1
  49. package/dist/runtime/protocol-init.js +7 -4
  50. package/dist/runtime/protocol-init.js.map +1 -1
  51. package/dist/runtime/repair-decision.js +15 -30
  52. package/dist/runtime/repair-decision.js.map +1 -1
  53. package/dist/runtime/repair-packet.js +8 -1
  54. package/dist/runtime/repair-packet.js.map +1 -1
  55. package/dist/runtime/scaffold/vue-template.d.ts +7 -0
  56. package/dist/runtime/scaffold/vue-template.js +187 -0
  57. package/dist/runtime/scaffold/vue-template.js.map +1 -0
  58. package/dist/runtime/scaffold.d.ts +21 -0
  59. package/dist/runtime/scaffold.js +80 -0
  60. package/dist/runtime/scaffold.js.map +1 -0
  61. package/dist/runtime/skills.js +3 -3
  62. package/dist/runtime/skills.js.map +1 -1
  63. package/dist/runtime/state.d.ts +4 -2
  64. package/dist/runtime/state.js +84 -20
  65. package/dist/runtime/state.js.map +1 -1
  66. package/dist/runtime/ui-restoration.d.ts +4 -0
  67. package/dist/runtime/ui-restoration.js +38 -0
  68. package/dist/runtime/ui-restoration.js.map +1 -0
  69. package/dist/runtime/units.js +38 -2
  70. package/dist/runtime/units.js.map +1 -1
  71. package/dist/runtime/verification-commands.js +8 -4
  72. package/dist/runtime/verification-commands.js.map +1 -1
  73. package/dist/runtime/verify.js +107 -40
  74. package/dist/runtime/verify.js.map +1 -1
  75. package/dist/schemas/types.d.ts +73 -6
  76. package/dist/schemas/validation.js +21 -0
  77. package/dist/schemas/validation.js.map +1 -1
  78. package/dist/storage/json.js +6 -1
  79. package/dist/storage/json.js.map +1 -1
  80. package/docs/DIRECTION.md +1 -1
  81. package/package.json +3 -4
@@ -0,0 +1,234 @@
1
+ import { UI_RESTORATION_CONSTRAINTS, UI_RESTORATION_VERIFICATION_FOCUS } from "../ui-restoration.js";
2
+ export function inferTaskIntent(scope, workflowKind) {
3
+ const normalized = scope.toLowerCase();
4
+ if (workflowKind === "frontend_review") {
5
+ return "frontend_review";
6
+ }
7
+ if (workflowKind === "prd_knowledge") {
8
+ return "capture_prd_knowledge";
9
+ }
10
+ if (workflowKind === "documentation") {
11
+ return "update_documentation";
12
+ }
13
+ if (workflowKind === "maintenance") {
14
+ return "maintain_project";
15
+ }
16
+ if (workflowKind === "bug_fix" || /\b(fix|bug)\b|\u4fee\u590d|\u9519\u8bef|\u62a5\u9519|\u7f3a\u9677/.test(normalized)) {
17
+ return "fix_bug";
18
+ }
19
+ if (workflowKind === "frontend_test" || /\b(test|e2e|playwright|vitest)\b|\u6d4b\u8bd5|\u7aef\u5230\u7aef|\u96c6\u6210\u6d4b\u8bd5/.test(normalized)) {
20
+ return "add_test";
21
+ }
22
+ if (/\brefactor\b|\u91cd\u6784/.test(normalized)) {
23
+ return "refactor";
24
+ }
25
+ return "implement_page";
26
+ }
27
+ export function inferFrontendWorkflow(scope, input, proposal) {
28
+ const normalized = scope.toLowerCase();
29
+ const hasAttachedUiSource = Boolean(input.ui);
30
+ const hasUiImplementationSignal = /\b(stitch|figma|html|design|page|screen|component|view|dashboard)\b|\u9875\u9762|\u754c\u9762|\u7ec4\u4ef6|\u89c6\u56fe|\u770b\u677f|\u8bbe\u8ba1/.test(normalized);
31
+ const hasUiSource = hasAttachedUiSource || /\b(ui|stitch|figma|html|design|page|screen|component|view|dashboard)\b|\u9875\u9762|\u754c\u9762|\u7ec4\u4ef6|\u89c6\u56fe|\u770b\u677f|\u8bbe\u8ba1/.test(normalized);
32
+ const hasPrdSource = Boolean(input.prd) || /\b(prd|product|requirement|requirements|knowledge|document)\b|\u4ea7\u54c1|\u9700\u6c42|\u77e5\u8bc6\u5e93|\u6587\u6863/.test(normalized);
33
+ const hasPrdKnowledgeSignal = hasPrdSource &&
34
+ (Boolean(input.prd) || /\b(prd|requirement|requirements|knowledge)\b|\u9700\u6c42|\u77e5\u8bc6\u5e93/.test(normalized)) &&
35
+ /\b(digest|distill|capture|index|knowledge|document|organize|summari[sz]e)\b|\u6c89\u6dc0|\u6574\u7406|\u7d22\u5f15|\u77e5\u8bc6\u5e93|\u63d0\u70bc|\u68b3\u7406|\u603b\u7ed3/.test(normalized);
36
+ const hasReviewSignal = /\b(review|code review|audit|handoff)\b|\u8bc4\u5ba1|\u4ee3\u7801\u5ba1\u67e5|\u5ba1\u67e5|\u5ba1\u6838|\u590d\u6838|\u4ea4\u4ed8/.test(normalized);
37
+ const hasBugSignal = /\b(bug|fix|regression|error)\b|\u4fee\u590d|\u9519\u8bef|\u62a5\u9519|\u7f3a\u9677/.test(normalized);
38
+ const hasTestSignal = /\b(e2e|integration test|test|playwright|vitest)\b|\u6d4b\u8bd5|\u7aef\u5230\u7aef|\u96c6\u6210\u6d4b\u8bd5/.test(normalized);
39
+ const hasApiSignal = /\b(api|swagger|endpoint|interface|request|dto)\b|\u63a5\u53e3|\u8bf7\u6c42|\u5bf9\u63a5|\u8054\u8c03/.test(normalized);
40
+ const hasRequirementChange = /\b(requirement changes?|changed [a-z0-9 -]*requirements?|update [a-z0-9 -]*requirements?|sync [a-z0-9 -]*requirements?)\b|\u9700\u6c42\u53d8\u66f4|\u53d8\u66f4\u9700\u6c42|\u540c\u6b65\u9700\u6c42/.test(normalized);
41
+ const hasDocumentationSignal = /\b(readme|docs?|documentation|guide|manual|agents\.md|claude\.md)\b|\u6587\u6863|\u8bf4\u660e|\u6307\u5357/.test(normalized);
42
+ const hasExplicitDocumentationTarget = /\b(readme|docs?|guide|manual|agents\.md|claude\.md)\b|\u6587\u6863|\u8bf4\u660e|\u6307\u5357/.test(normalized);
43
+ const hasMaintenanceSignal = /\b(cli|runtime|config|package|script|scaffold|harness|protocol|workflow|planning|planner|resolver|policy|maintenance|refactor)\b|\u811a\u624b\u67b6|\u534f\u8bae|\u89c4\u5212|\u5206\u6d3e|\u7ef4\u62a4|\u91cd\u6784|\u51c6\u786e\u6027/.test(normalized);
44
+ const hasPlannerMaintenanceSignal = /\b(plan|planning|planner|resolver|policy|runtime|harness|workflow)\b|\u89c4\u5212|\u5206\u6d3e/.test(normalized);
45
+ const systemKind = hasPrdKnowledgeSignal && !hasUiSource
46
+ ? "prd_knowledge"
47
+ : hasReviewSignal
48
+ ? "frontend_review"
49
+ : hasBugSignal
50
+ ? "bug_fix"
51
+ : hasRequirementChange
52
+ ? "requirement_change"
53
+ : hasTestSignal
54
+ ? "frontend_test"
55
+ : hasApiSignal
56
+ ? "api_integration"
57
+ : hasMaintenanceSignal && hasPlannerMaintenanceSignal && !hasAttachedUiSource && !hasExplicitDocumentationTarget
58
+ ? "maintenance"
59
+ : hasMaintenanceSignal && !hasAttachedUiSource && !hasUiImplementationSignal && !hasExplicitDocumentationTarget
60
+ ? "maintenance"
61
+ : hasDocumentationSignal && !hasAttachedUiSource && !hasUiImplementationSignal
62
+ ? "documentation"
63
+ : hasMaintenanceSignal && !hasAttachedUiSource && !hasUiImplementationSignal
64
+ ? "maintenance"
65
+ : hasPrdSource && !hasUiSource
66
+ ? "prd_knowledge"
67
+ : "ui_implementation";
68
+ const evidenceKind = selectEvidenceWorkflowKind(systemKind, proposal?.planningEvidence);
69
+ const kind = evidenceKind ?? systemKind;
70
+ return workflowPolicy(kind, { hasPrdSource, hasUiSource });
71
+ }
72
+ export function verificationForWorkflow(kind) {
73
+ if (kind === "frontend_test") {
74
+ return ["targeted test", "typecheck"];
75
+ }
76
+ if (kind === "bug_fix") {
77
+ return ["regression test", "typecheck"];
78
+ }
79
+ if (kind === "frontend_review") {
80
+ return ["typecheck", "test", "build"];
81
+ }
82
+ if (kind === "api_integration") {
83
+ return ["typecheck", "integration test or API mock"];
84
+ }
85
+ if (kind === "requirement_change") {
86
+ return ["typecheck", "affected regression test"];
87
+ }
88
+ if (kind === "prd_knowledge") {
89
+ return ["knowledge review"];
90
+ }
91
+ if (kind === "documentation") {
92
+ return ["documentation review"];
93
+ }
94
+ if (kind === "maintenance") {
95
+ return ["regression test", "typecheck", "build"];
96
+ }
97
+ return ["typecheck"];
98
+ }
99
+ function selectEvidenceWorkflowKind(systemKind, evidence) {
100
+ const candidates = [...(evidence?.workflowCandidates ?? [])].sort((left, right) => right.confidence - left.confidence);
101
+ const primary = candidates[0];
102
+ const runnerUp = candidates[1];
103
+ const margin = primary && runnerUp ? primary.confidence - runnerUp.confidence : primary?.confidence ?? 0;
104
+ if (!primary || primary.confidence < 0.75 || margin < 0.2) {
105
+ return null;
106
+ }
107
+ if (primary.kind === systemKind) {
108
+ return primary.kind;
109
+ }
110
+ if (systemKind === "ui_implementation") {
111
+ return primary.kind;
112
+ }
113
+ if (primary.confidence >= 0.9 && systemKind !== "bug_fix" && systemKind !== "requirement_change") {
114
+ return primary.kind;
115
+ }
116
+ return null;
117
+ }
118
+ function workflowPolicy(kind, inputSignals) {
119
+ const policies = {
120
+ ui_implementation: {
121
+ kind,
122
+ summary: "Implement or adapt frontend UI while preserving project semantics, component boundaries, and validation evidence.",
123
+ requiredKnowledgeActions: inputSignals.hasUiSource
124
+ ? ["Capture reusable UI semantics, component responsibilities, and design assumptions in project knowledge when they affect future work."]
125
+ : ["Reuse existing project knowledge before inventing new UI semantics."],
126
+ implementationConstraints: [...UI_RESTORATION_CONSTRAINTS],
127
+ verificationFocus: [...UI_RESTORATION_VERIFICATION_FOCUS]
128
+ },
129
+ prd_knowledge: {
130
+ kind,
131
+ summary: "Convert PRD or requirement material into durable project knowledge before implementation.",
132
+ requiredKnowledgeActions: [
133
+ "Promote stable product concepts, terminology, permissions, workflows, and acceptance rules into .frontend-harness/knowledge/.",
134
+ "Keep raw PRD text separate from distilled project knowledge."
135
+ ],
136
+ implementationConstraints: [
137
+ "Do not implement product behavior until PRD-derived assumptions are explicit.",
138
+ "Mark unknown product decisions as blockers or assumptions instead of guessing."
139
+ ],
140
+ verificationFocus: ["knowledge coverage", "acceptance criteria traceability", "terminology consistency"]
141
+ },
142
+ api_integration: {
143
+ kind,
144
+ summary: "Integrate frontend behavior with API contracts using project knowledge plus Swagger/API evidence.",
145
+ requiredKnowledgeActions: [
146
+ "Reference relevant domain knowledge before mapping request parameters, DTOs, and response states.",
147
+ "Promote durable API assumptions when Swagger or backend behavior clarifies product rules."
148
+ ],
149
+ implementationConstraints: [
150
+ "Do not invent API fields, enum values, pagination contracts, or error shapes.",
151
+ "Keep request mapping, loading, empty, and error states inside the project API/state conventions."
152
+ ],
153
+ verificationFocus: ["typecheck", "API mapping", "loading/empty/error states", "integration tests or mocks"]
154
+ },
155
+ frontend_test: {
156
+ kind,
157
+ summary: "Add or update frontend E2E/integration coverage for user-visible behavior.",
158
+ requiredKnowledgeActions: [
159
+ "Use project knowledge to choose behavior-level assertions instead of implementation-detail assertions.",
160
+ "Promote durable testing conventions only when they apply beyond the current task."
161
+ ],
162
+ implementationConstraints: [
163
+ "Prefer behavior-focused integration or E2E tests over brittle snapshot-only checks.",
164
+ "Keep fixtures and mocks aligned with known API/product contracts."
165
+ ],
166
+ verificationFocus: ["targeted test", "typecheck", "critical user path", "failure diagnostics"]
167
+ },
168
+ bug_fix: {
169
+ kind,
170
+ summary: "Fix a frontend bug with evidence, minimal scope, and regression coverage proportional to risk.",
171
+ requiredKnowledgeActions: [
172
+ "Check project knowledge for intended behavior before changing code.",
173
+ "Promote the resolved product or technical rule if the bug revealed durable knowledge."
174
+ ],
175
+ implementationConstraints: [
176
+ "Reproduce or explain the bug before patching when evidence is available.",
177
+ "Keep the fix scoped to the failing behavior and avoid unrelated refactors."
178
+ ],
179
+ verificationFocus: ["regression test", "typecheck", "affected workflow", "repair evidence"]
180
+ },
181
+ frontend_review: {
182
+ kind,
183
+ summary: "Review frontend project changes or project health before handoff, with findings grounded in code and validation evidence.",
184
+ requiredKnowledgeActions: [
185
+ "Check project-local skills and knowledge before judging conventions.",
186
+ "Promote durable review findings only when they represent reusable project guidance."
187
+ ],
188
+ implementationConstraints: [
189
+ "Treat review plans as an inspection boundary, not as instructions to create new UI components.",
190
+ "Fix only evidence-backed, safe, scoped issues discovered during review."
191
+ ],
192
+ verificationFocus: ["typecheck", "test", "build", "review findings"]
193
+ },
194
+ requirement_change: {
195
+ kind,
196
+ summary: "Apply requirement changes and keep implementation, tests, and knowledge synchronized.",
197
+ requiredKnowledgeActions: [
198
+ "Update project knowledge for changed product rules before or alongside code changes.",
199
+ "Record obsolete assumptions so future agents do not reuse stale behavior."
200
+ ],
201
+ implementationConstraints: [
202
+ "Identify impacted UI, API mapping, tests, and knowledge before editing.",
203
+ "Do not leave previous requirement behavior undocumented when it changes."
204
+ ],
205
+ verificationFocus: ["changed acceptance criteria", "knowledge sync", "affected regression tests", "typecheck"]
206
+ },
207
+ documentation: {
208
+ kind,
209
+ summary: "Update project documentation or agent protocol text without inventing implementation files.",
210
+ requiredKnowledgeActions: [
211
+ "Keep documentation aligned with current product behavior and protocol boundaries."
212
+ ],
213
+ implementationConstraints: [
214
+ "Edit documentation targets directly; do not create frontend component files for documentation-only work.",
215
+ "Preserve generated protocol blocks unless running protocol initialization."
216
+ ],
217
+ verificationFocus: ["documentation accuracy", "typecheck when package contracts change"]
218
+ },
219
+ maintenance: {
220
+ kind,
221
+ summary: "Maintain project tooling, runtime, CLI, configuration, or planning behavior.",
222
+ requiredKnowledgeActions: [
223
+ "Record durable product or protocol behavior changes when they affect future agent work."
224
+ ],
225
+ implementationConstraints: [
226
+ "Keep maintenance changes scoped to runtime/tooling behavior and matching tests.",
227
+ "Do not infer UI component work from project maintenance wording alone."
228
+ ],
229
+ verificationFocus: ["regression test", "typecheck", "build"]
230
+ }
231
+ };
232
+ return policies[kind];
233
+ }
234
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/runtime/plan/workflow.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { AgentDecisionCheckResult, ComponentItem, ExecutionGuidanceStep, ExecutionUnit, TaskUnderstanding } from "../schemas/types.js";
1
+ import type { AgentProposalCheckResult, ComponentItem, ExecutionGuidanceStep, ExecutionUnit, PlanMeta, TaskUnderstanding } from "../schemas/types.js";
2
2
  export interface PlanInput {
3
3
  taskText: string;
4
4
  prd?: string;
5
5
  ui?: string;
6
- agentDecision?: string;
6
+ agentProposal?: string;
7
7
  }
8
8
  export interface PlanOutput {
9
9
  task: TaskUnderstanding;
@@ -13,6 +13,7 @@ export interface PlanOutput {
13
13
  componentGraphPath: string;
14
14
  guidancePath: string;
15
15
  statePath: string;
16
+ meta: PlanMeta;
16
17
  }
17
18
  export declare function createPlan(projectRoot: string, input: PlanInput): PlanOutput;
18
- export declare function checkAgentPlanningDecision(projectRoot: string, file: string | undefined): AgentDecisionCheckResult;
19
+ export declare function checkAgentPlanningProposal(projectRoot: string, file: string | undefined): AgentProposalCheckResult;