@gluecharm-lab/easyspecs-cli 0.0.3
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/dist/main.cjs +19663 -0
- package/dist/main.cjs.map +7 -0
- package/package.json +27 -0
- package/resources/opencode-agents/MERMAID.md +20 -0
- package/resources/opencode-agents/README.md +67 -0
- package/resources/opencode-agents/agent-ace-curator.md +31 -0
- package/resources/opencode-agents/agent-ace-reflector.md +16 -0
- package/resources/opencode-agents/agent-ace-trace-recorder.md +33 -0
- package/resources/opencode-agents/agent-add-reference-architecture-md.md +22 -0
- package/resources/opencode-agents/agent-add-reference-project-md.md +21 -0
- package/resources/opencode-agents/agent-classify-unreferenced-file.md +61 -0
- package/resources/opencode-agents/agent-list-data-model.md +243 -0
- package/resources/opencode-agents/agent-list-entity-fields.md +191 -0
- package/resources/opencode-agents/agent-list-experiences.md +252 -0
- package/resources/opencode-agents/agent-list-features.md +218 -0
- package/resources/opencode-agents/agent-list-scenarios.md +179 -0
- package/resources/opencode-agents/agent-list-services.md +208 -0
- package/resources/opencode-agents/agent-list-tech-stack.md +176 -0
- package/resources/opencode-agents/agent-list-use-cases.md +179 -0
- package/resources/opencode-agents/agent-md-architecture.md +139 -0
- package/resources/opencode-agents/agent-md-docs-project.md +172 -0
- package/resources/opencode-agents/agent-md-entity-detail.md +86 -0
- package/resources/opencode-agents/agent-md-feature-detail.md +95 -0
- package/resources/opencode-agents/agent-md-field-detail.md +80 -0
- package/resources/opencode-agents/agent-md-interaction-detail.md +84 -0
- package/resources/opencode-agents/agent-md-method-detail.md +86 -0
- package/resources/opencode-agents/agent-md-relationship-detail.md +80 -0
- package/resources/opencode-agents/agent-md-scenario-detail.md +92 -0
- package/resources/opencode-agents/agent-md-service-detail.md +88 -0
- package/resources/opencode-agents/agent-md-tool-detail.md +82 -0
- package/resources/opencode-agents/agent-md-use-case-detail.md +165 -0
- package/resources/opencode-agents/agent-md-view-detail.md +117 -0
- package/resources/opencode-agents/agent-reference-coverage-execution-report.md +28 -0
- package/resources/opencode-agents/agent-repo-surface-scan.md +136 -0
- package/resources/opencode-agents/agent-resolve-open-question.md +42 -0
- package/resources/opencode-agents/agent-review-data-model-list.md +26 -0
- package/resources/opencode-agents/agent-review-entity-fields-list.md +26 -0
- package/resources/opencode-agents/agent-review-experiences-list.md +72 -0
- package/resources/opencode-agents/agent-review-features-list.md +52 -0
- package/resources/opencode-agents/agent-review-scenarios-list.md +28 -0
- package/resources/opencode-agents/agent-review-services-list.md +26 -0
- package/resources/opencode-agents/agent-review-tech-stack-list.md +26 -0
- package/resources/opencode-agents/agent-review-use-cases-list.md +28 -0
- package/resources/opencode-agents/agent-triage-unreferenced-coordination.md +35 -0
- package/resources/schemas/ace/ace-agent-overlay.schema.json +29 -0
- package/resources/schemas/ace/ace-curator-delta.schema.json +51 -0
- package/resources/schemas/ace/ace-generator-trace.schema.json +134 -0
- package/resources/schemas/ace/ace-playbook.schema.json +36 -0
- package/resources/schemas/ace/ace-reflector-lessons.schema.json +77 -0
- package/resources/schemas/context-lists/coordination-duplicates-report.schema.json +97 -0
- package/resources/schemas/context-lists/coverage-reference-validation.schema.json +125 -0
- package/resources/schemas/context-lists/data-model-list.schema.json +157 -0
- package/resources/schemas/context-lists/entity-fields-list.schema.json +104 -0
- package/resources/schemas/context-lists/experiences-list.schema.json +132 -0
- package/resources/schemas/context-lists/features-list.schema.json +109 -0
- package/resources/schemas/context-lists/repo-surface-scan.schema.json +150 -0
- package/resources/schemas/context-lists/scenarios-list.schema.json +107 -0
- package/resources/schemas/context-lists/services-list.schema.json +132 -0
- package/resources/schemas/context-lists/tech-stack-list.schema.json +108 -0
- package/resources/schemas/context-lists/use-cases-list.schema.json +108 -0
- package/resources/schemas/context-lists/zero-reference-classifier-record.schema.json +61 -0
- package/resources/schemas/context-lists/zero-reference-routing.schema.json +98 -0
- package/resources/schemas/context-lists/zero-reference-triage-record.schema.json +57 -0
- package/resources/schemas/context-lists/zero-reference-triage.schema.json +69 -0
- package/resources/schemas/index-application-context.schema.json +202 -0
- package/resources/schemas/srs-impact.schema.json +187 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Agent: Tool / dependency detail (markdown)
|
|
2
|
+
|
|
3
|
+
| Field | Value |
|
|
4
|
+
| ----- | ----- |
|
|
5
|
+
| **AGENT_ID** | `ctx-md-tool-detail` |
|
|
6
|
+
| **Display name** | Tool detail |
|
|
7
|
+
| **SRS-8** | §4.5 **`TS-<nn>-<slug>.md`**; §6.6 (parallel after `tech-stack-list.json`); **R7**, **R21** |
|
|
8
|
+
| **Output** | `<worktree>/.gluecharm/context/TS-<nn>-<slug>.md` |
|
|
9
|
+
| **Input (coordination)** | `<worktree>/.gluecharm/context/tech-stack-list.json` (repo-relative: `.gluecharm/context/tech-stack-list.json`) |
|
|
10
|
+
| **Pattern** | §3.5.1 — Markdown detail |
|
|
11
|
+
|
|
12
|
+
## Responsibility
|
|
13
|
+
|
|
14
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
15
|
+
|
|
16
|
+
Document **one library, framework, SaaS, or infra dependency** (`TS-*`): version, role, configuration surface, boundaries (what the app does vs what the tool does).
|
|
17
|
+
|
|
18
|
+
**Coordination JSON** lives **only** under **`.gluecharm/context/`**, not the worktree root. Read **`.gluecharm/context/tech-stack-list.json`** first; if missing, **glob** `.gluecharm/context/**/tech-stack-list.json` before failing.
|
|
19
|
+
|
|
20
|
+
## Task (for `{{TASK_DESCRIPTION}}`)
|
|
21
|
+
|
|
22
|
+
Describe **tool {{TS_CODE}}** per **`.gluecharm/context/tech-stack-list.json`**. The tool row **must** include **`sourceReferences`** (`minItems: 1`); seed the **Evidence index** from those anchors (each **`path`** is a file, e.g. manifest or lockfile — not a directory), then extend with deeper reading.
|
|
23
|
+
|
|
24
|
+
## Non-empty chapters and Evidence index (mandatory)
|
|
25
|
+
|
|
26
|
+
- **`## Evidence index`** is the **references / code-grounding** chapter. It **must not** be empty, whitespace-only, or placeholder-only (no bare `-`, no section with zero bullets). A generated `.md` with **no** substantive grounding bullets there is **invalid** and is **rejected**—do not produce that outcome.
|
|
27
|
+
- **Preferred:** at least one concrete `path:line` or `path:start-end` cite from the worktree (implementation, config, tests, schemas—not README-style narrative files).
|
|
28
|
+
- **If grounding is impossible** after reasonable search: set **`Status: hallucination?`** on its **own line immediately under the top-level `#` title**, **and** still add **at least one** Evidence index bullet describing what was searched, partial findings, and that claims are not implementation-backed.
|
|
29
|
+
- **Other `##` sections:** do not leave them empty; if unknown, add a short note under that heading explaining why.
|
|
30
|
+
- **Banned:** never list any path whose **basename** is `readme.md` in **any** casing (`README.md`, `readme.md`, etc.) in the Evidence index. **Never** list paths under **`.opencode/`** either (tooling copy, not product source).
|
|
31
|
+
|
|
32
|
+
### Revision log (mandatory)
|
|
33
|
+
|
|
34
|
+
- **`## Revision`** sits **immediately before** **`## Evidence index`**. **Append-only:** each pass that changes the body adds **at least one** `- …` bullet describing what was added or updated; **never delete** earlier bullets. **First write:** include an initial bullet (e.g. **Initial draft**).
|
|
35
|
+
|
|
36
|
+
## Output template
|
|
37
|
+
|
|
38
|
+
Basename **`TS-<nn>-<slug>.md`**.
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
# Tool {{TS_CODE}} — <name>
|
|
42
|
+
|
|
43
|
+
**Slug:** <slug> · **File:** {{OUTPUT_BASENAME}}
|
|
44
|
+
|
|
45
|
+
## Summary
|
|
46
|
+
|
|
47
|
+
## Role in this codebase
|
|
48
|
+
|
|
49
|
+
## Version and configuration
|
|
50
|
+
|
|
51
|
+
<!-- Cite package.json, lockfile, env, infra as applicable. -->
|
|
52
|
+
|
|
53
|
+
## Boundaries
|
|
54
|
+
|
|
55
|
+
<!-- What the app implements vs what the tool provides. -->
|
|
56
|
+
|
|
57
|
+
## Integration points
|
|
58
|
+
|
|
59
|
+
## Revision
|
|
60
|
+
|
|
61
|
+
<!--
|
|
62
|
+
Append-only: after each substantive edit, add one bullet (newest at bottom, or consistent ISO-8601 date prefixes).
|
|
63
|
+
-->
|
|
64
|
+
|
|
65
|
+
- <!-- e.g. Initial draft: version and usage from manifests/config. -->
|
|
66
|
+
|
|
67
|
+
## Evidence index
|
|
68
|
+
|
|
69
|
+
- <!-- At least one substantive bullet: `path:line` or honest grounding note per Non-empty chapters — never empty; never `readme.md` basenames. -->
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Evidence (**R21**)
|
|
73
|
+
|
|
74
|
+
Follow **Non-empty chapters and Evidence index** above. Cite `package.json`, lockfiles, env samples, and integration code.
|
|
75
|
+
|
|
76
|
+
## Prerequisites
|
|
77
|
+
|
|
78
|
+
**`.gluecharm/context/tech-stack-list.json`** includes this tool.
|
|
79
|
+
|
|
80
|
+
## OpenCode wiring
|
|
81
|
+
|
|
82
|
+
§3.5.1. Parallel per tool row (§6.6).
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Agent: Use case detail (markdown)
|
|
2
|
+
|
|
3
|
+
| Field | Value |
|
|
4
|
+
| ----- | ----- |
|
|
5
|
+
| **AGENT_ID** | `ctx-md-use-case-detail` |
|
|
6
|
+
| **Display name** | Use case detail |
|
|
7
|
+
| **SRS-8** | §4.4 `FE-<nn>_UC-<uu>.md`; §6.2 Feature spine; **R7**, **R21** |
|
|
8
|
+
| **Output** | `<worktree>/.gluecharm/context/FE-<nn>_UC-<uu>.md` |
|
|
9
|
+
| **Input (coordination)** | `<worktree>/.gluecharm/context/FE-<nn>-use-cases-list.json` (repo-relative: `.gluecharm/context/FE-<nn>-use-cases-list.json`) |
|
|
10
|
+
| **Pattern** | §3.5.1 — Markdown detail |
|
|
11
|
+
|
|
12
|
+
## Responsibility
|
|
13
|
+
|
|
14
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
15
|
+
|
|
16
|
+
Narrative for **one use case** under a feature: **concrete** actors, **actual** inputs (fields, types, mandatory vs optional), **where and how** validation runs, **what** is persisted or mutated, **what** is returned or surfaced, and **ordered implementation steps** from entrypoint through to outcome—not a generic “the user registers” paragraph.
|
|
17
|
+
|
|
18
|
+
**Spine context:** Non-trivial use cases **typically** have **multiple** scenarios in **`FE-<nn>_UC-<uu>-scenarios-list.json`** (happy path, errors, permissions, data variants). **`## Related scenarios`** should list **several** `SC-*` rows when they exist; if the list has only one scenario, double-check that branches were not folded into this document instead of separate SC rows.
|
|
19
|
+
|
|
20
|
+
The matching row in **`.gluecharm/context/FE-<nn>-use-cases-list.json`** **must** include **`sourceReferences`** (`minItems: 1`); seed the **Evidence index** from those anchors (each **`path`** is a file, not a directory), then **extend** with every module you cite in **Code flow**.
|
|
21
|
+
|
|
22
|
+
**Coordination JSON** for this agent lives **only** under **`.gluecharm/context/`**, not at the worktree root. Read that path first; if it is missing, **glob** `.gluecharm/context/**/FE-<nn>-use-cases-list.json` before failing.
|
|
23
|
+
|
|
24
|
+
## Task (for `{{TASK_DESCRIPTION}}`)
|
|
25
|
+
|
|
26
|
+
Document **use case {{UC_CODE}}** under **feature {{FE_CODE}}** per the corresponding use-cases list entry. Do not change stable codes.
|
|
27
|
+
|
|
28
|
+
### Depth (mandatory)
|
|
29
|
+
|
|
30
|
+
1. **Trace the real implementation** — From the use case’s intent, locate the **actual** route, command, handler, service method, or job that starts this flow; follow **calls, validations, repositories, DTOs/mappers, and responses** in the worktree until the success and failure paths are clear.
|
|
31
|
+
2. **Name specifics** — Use **real** identifiers: HTTP paths/methods, function or method names, class/module filenames, validation schemas, DB tables or ORM entities, error codes or messages the code returns. Avoid vague wording (“the system validates”) without saying **which** validator and **where**.
|
|
32
|
+
3. **Data and conditions** — Spell out **which fields** are required, **what** rules apply (length, format, auth, rate limits, feature flags), **what** happens when a rule fails (HTTP status, exception type, user-visible message if encoded), and **what** data shape is stored or emitted on success.
|
|
33
|
+
4. **Code flow** — Write **`## Code flow`** as an **implementation-order** pipeline: e.g. entrypoint → auth/authorization check → input binding/parsing → per-field or schema validation → business rules → persistence transaction → side effects (events, emails) → response mapping. **Each step** must reference **concrete** code locations (you will mirror those in **Evidence index**).
|
|
34
|
+
5. **Mermaid** — Under **`## Code flow`**, add **at least one** fenced **`mermaid`** block when the implementation has **two or more** meaningful stages (validation, persistence, external call, etc.). Follow **[MERMAID.md](./MERMAID.md)**: **Mermaid 11.13**, **neutral** theme (`%%{init: {'theme':'neutral'}}%%` as first line inside the fence). Use **`flowchart`** or **`sequenceDiagram`** with nodes/actors labeled to match **real** modules or functions (not “Frontend” / “Backend” placeholders unless the repo truly has no finer structure). Skip Mermaid only if the flow is a single trivial call **and** you state why in one line.
|
|
35
|
+
|
|
36
|
+
### Evidence vs Code flow (mandatory)
|
|
37
|
+
|
|
38
|
+
- **Entry point alone is insufficient.** The **Evidence index** must cite **implementation** for: the **primary entrypoint**, **validation** (schema, guards, domain checks), **core business logic** touched by this use case, **persistence** (save/update/query), and **response / error mapping**—each with `path:line` or `path:start-end` (or tight ranges), aligned with the steps in **`## Code flow`**.
|
|
39
|
+
- Prefer **one Evidence bullet per major Code flow stage** (or a small table in **Code flow** with a matching Evidence bullet list)—readers must see **which files** justify **which** part of the narrative.
|
|
40
|
+
- Do **not** cite only the outer controller/route if all substantive logic lives in services, validators, or repositories; those **must** appear too.
|
|
41
|
+
|
|
42
|
+
## Non-empty chapters and Evidence index (mandatory)
|
|
43
|
+
|
|
44
|
+
- **`## Evidence index`** is the **references / code-grounding** chapter. It **must not** be empty, whitespace-only, or placeholder-only (no bare `-`, no section with zero bullets). A generated `.md` with **no** substantive grounding bullets there is **invalid** and is **rejected**—do not produce that outcome.
|
|
45
|
+
- **Preferred:** concrete `path:line` or `path:start-end` cites from the worktree (implementation, config, tests, schemas—not README-style narrative files).
|
|
46
|
+
- **`## Code flow`** must not be a generic checklist; it must reflect **this** use case’s **actual** call chain and data path. If a section is thin after search, say what is missing and cite the closest evidence.
|
|
47
|
+
- **If grounding is impossible** after reasonable search: set **`Status: hallucination?`** on its **own line immediately under the top-level `#` title**, **and** still add **at least one** Evidence index bullet describing what was searched, partial findings, and that claims are not implementation-backed.
|
|
48
|
+
- **Other `##` sections:** do not leave them empty; if unknown, add a short note under that heading explaining why.
|
|
49
|
+
- **Banned:** never list any path whose **basename** is `readme.md` in **any** casing (`README.md`, `readme.md`, etc.) in the Evidence index. **Never** list paths under **`.opencode/`** either (tooling copy, not product source).
|
|
50
|
+
|
|
51
|
+
### Revision log (mandatory)
|
|
52
|
+
|
|
53
|
+
- **`## Revision`** sits **immediately before** **`## Evidence index`**. **Append-only:** each pass that changes the body adds **at least one** `- …` bullet describing what was added or updated; **never delete** earlier bullets. **First write:** include an initial bullet (e.g. **Initial draft**).
|
|
54
|
+
|
|
55
|
+
## Output template
|
|
56
|
+
|
|
57
|
+
Basename e.g. **`FE-<nn>_UC-<uu>.md`** (optional slug per PLAN). **R21:** cite behaviour and rules; **Code flow** and **Evidence index** must stay consistent.
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
# Use case {{UC_CODE}} — <name> (Feature {{FE_CODE}})
|
|
61
|
+
|
|
62
|
+
## Summary
|
|
63
|
+
|
|
64
|
+
<!-- One tight paragraph: goal, primary actor, success outcome — no generic filler. -->
|
|
65
|
+
|
|
66
|
+
## Actors and stakeholders
|
|
67
|
+
|
|
68
|
+
## Preconditions
|
|
69
|
+
|
|
70
|
+
<!-- What must be true before this use case can start (auth, state, feature flags) — cite checks in code if present. -->
|
|
71
|
+
|
|
72
|
+
## Data inputs and validation
|
|
73
|
+
|
|
74
|
+
<!--
|
|
75
|
+
Concrete inputs for THIS use case:
|
|
76
|
+
- Field or parameter names, mandatory vs optional, types.
|
|
77
|
+
- Validation rules (schema, decorators, manual checks) and where they run.
|
|
78
|
+
- Failure behaviour (status codes, errors) with code cites in Evidence.
|
|
79
|
+
-->
|
|
80
|
+
|
|
81
|
+
## Main flow (user- or operator-visible)
|
|
82
|
+
|
|
83
|
+
<!--
|
|
84
|
+
Short numbered steps from the actor’s perspective (can mirror Code flow at a higher level).
|
|
85
|
+
Each step should be traceable to ## Code flow.
|
|
86
|
+
-->
|
|
87
|
+
|
|
88
|
+
## Code flow
|
|
89
|
+
|
|
90
|
+
<!--
|
|
91
|
+
IMPLEMENTATION ORDER — not marketing prose. Numbered steps:
|
|
92
|
+
- What runs (function/handler/method), in which file.
|
|
93
|
+
- What data moves (DTO, entity, query).
|
|
94
|
+
- Branching: validation failure → which path; success → next step.
|
|
95
|
+
|
|
96
|
+
When 2+ stages: add a ### heading, then open a fenced block with language tag mermaid (flowchart TD or sequenceDiagram)
|
|
97
|
+
whose node/participant labels match real modules or symbols from the repo.
|
|
98
|
+
-->
|
|
99
|
+
|
|
100
|
+
### <!-- e.g. Request path (implementation) -->
|
|
101
|
+
|
|
102
|
+
<!-- Numbered list: 1. … 2. … each tied to files named in Evidence index. -->
|
|
103
|
+
|
|
104
|
+
### <!-- Mermaid — required when flow has 2+ stages -->
|
|
105
|
+
|
|
106
|
+
<!--
|
|
107
|
+
```mermaid
|
|
108
|
+
%%{init: {'theme':'neutral'}}%%
|
|
109
|
+
flowchart TD
|
|
110
|
+
...
|
|
111
|
+
```
|
|
112
|
+
or sequenceDiagram with real handler/service/repository names (see MERMAID.md).
|
|
113
|
+
-->
|
|
114
|
+
|
|
115
|
+
## Alternate flows
|
|
116
|
+
|
|
117
|
+
## Postconditions
|
|
118
|
+
|
|
119
|
+
## Errors and edge cases
|
|
120
|
+
|
|
121
|
+
<!-- Map error paths to code (guards, catch blocks, HTTP errors) — cite in Evidence. -->
|
|
122
|
+
|
|
123
|
+
## Technical mapping
|
|
124
|
+
|
|
125
|
+
<!--
|
|
126
|
+
Optional: cross-cutting helpers, shared validators, infra (queue, cache) if not fully covered above.
|
|
127
|
+
Do not duplicate ## Code flow; add only extra touchpoints.
|
|
128
|
+
-->
|
|
129
|
+
|
|
130
|
+
## Related scenarios
|
|
131
|
+
|
|
132
|
+
<!-- List SC-* from scenarios list when known. -->
|
|
133
|
+
|
|
134
|
+
## Revision
|
|
135
|
+
|
|
136
|
+
<!--
|
|
137
|
+
Append-only: after each substantive edit, add one bullet (newest at bottom, or consistent ISO-8601 date prefixes).
|
|
138
|
+
-->
|
|
139
|
+
|
|
140
|
+
- <!-- e.g. Initial draft: data inputs, code flow, and Evidence tied to handlers and services. -->
|
|
141
|
+
|
|
142
|
+
## Evidence index
|
|
143
|
+
|
|
144
|
+
<!--
|
|
145
|
+
Multiple substantive bullets — at minimum: entrypoint, validation, core logic, persistence/IO, response/errors.
|
|
146
|
+
Each bullet should map to a stage in ## Code flow. Never only the route file if logic lives elsewhere.
|
|
147
|
+
-->
|
|
148
|
+
|
|
149
|
+
- <!-- `path:line` — entrypoint -->
|
|
150
|
+
- <!-- `path:start-end` — validation -->
|
|
151
|
+
- <!-- `path:start-end` — persistence / domain logic -->
|
|
152
|
+
- <!-- `path:start-end` — response or error mapping -->
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Evidence (**R21**)
|
|
156
|
+
|
|
157
|
+
Follow **Non-empty chapters and Evidence index** and **Evidence vs Code flow** above. Citations required per §3.5.1. Basename must match §4.4 composite pattern.
|
|
158
|
+
|
|
159
|
+
## Prerequisites
|
|
160
|
+
|
|
161
|
+
**`.gluecharm/context/FE-<nn>-use-cases-list.json`** includes this use case.
|
|
162
|
+
|
|
163
|
+
## OpenCode wiring
|
|
164
|
+
|
|
165
|
+
§3.5.1; orchestration supplies FE/UC codes and exact **`{{OUTPUT_FILE_ABSOLUTE}}`**.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Agent: View detail (markdown)
|
|
2
|
+
|
|
3
|
+
| Field | Value |
|
|
4
|
+
| ----- | ----- |
|
|
5
|
+
| **AGENT_ID** | `ctx-md-view-detail` |
|
|
6
|
+
| **Display name** | View detail |
|
|
7
|
+
| **SRS-8** | §4.5 **`XP-<nn>-<slug>.md`**; §6.3 (parallel after `experiences-list.json`); **R7**, **R21** |
|
|
8
|
+
| **Output** | `<worktree>/.gluecharm/context/XP-<nn>-<slug>.md` |
|
|
9
|
+
| **Input (coordination)** | `<worktree>/.gluecharm/context/experiences-list.json` (repo-relative: `.gluecharm/context/experiences-list.json`) |
|
|
10
|
+
| **Pattern** | §3.5.1 — Markdown detail |
|
|
11
|
+
|
|
12
|
+
## Responsibility
|
|
13
|
+
|
|
14
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
15
|
+
|
|
16
|
+
Document **one view** (screen, page, or major UI surface): purpose, layout, key controls, navigation, data shown, and implementation references. Codes and slugs come from **`.gluecharm/context/experiences-list.json`**. The view row **must** include **`sourceReferences`** (`minItems: 1`); seed the **Evidence index** with them (file paths only in JSON, not directories).
|
|
17
|
+
|
|
18
|
+
In **`## Layout and key components`**, include a **high-level mockup**: one fenced code block of **ASCII / Unicode box-drawing** wireframe (e.g. `╔` `═` `║` `╚`) that shows window chrome (if any), main regions, toolbars, tabs, and where primary content sits. Match the **actual** view under **`{{WORKTREE_ROOT}}`**. Use **Example high-level mockup (style reference)** in this agent file for framing and density only—replace every label with the documented view.
|
|
19
|
+
|
|
20
|
+
**Coordination JSON** lives **only** under **`.gluecharm/context/`**, not the worktree root. Read that path first; if missing, **glob** `.gluecharm/context/**/experiences-list.json` before failing.
|
|
21
|
+
|
|
22
|
+
## Task (for `{{TASK_DESCRIPTION}}`)
|
|
23
|
+
|
|
24
|
+
Describe **view {{XP_CODE}}** (name/slug from list). Ground in components and routes under **`{{WORKTREE_ROOT}}`**.
|
|
25
|
+
|
|
26
|
+
## Non-empty chapters and Evidence index (mandatory)
|
|
27
|
+
|
|
28
|
+
- **`## Evidence index`** is the **references / code-grounding** chapter. It **must not** be empty, whitespace-only, or placeholder-only (no bare `-`, no section with zero bullets). A generated `.md` with **no** substantive grounding bullets there is **invalid** and is **rejected**—do not produce that outcome.
|
|
29
|
+
- **Preferred:** at least one concrete `path:line` or `path:start-end` cite from the worktree (implementation, config, tests, schemas—not README-style narrative files).
|
|
30
|
+
- **If grounding is impossible** after reasonable search: set **`Status: hallucination?`** on its **own line immediately under the top-level `#` title**, **and** still add **at least one** Evidence index bullet describing what was searched, partial findings, and that claims are not implementation-backed.
|
|
31
|
+
- **Other `##` sections:** do not leave them empty; if unknown, add a short note under that heading explaining why.
|
|
32
|
+
- **Banned:** never list any path whose **basename** is `readme.md` in **any** casing (`README.md`, `readme.md`, etc.) in the Evidence index. **Never** list paths under **`.opencode/`** either (tooling copy, not product source).
|
|
33
|
+
|
|
34
|
+
### Revision log (mandatory)
|
|
35
|
+
|
|
36
|
+
- **`## Revision`** sits **immediately before** **`## Evidence index`**. **Append-only:** each pass that changes the body adds **at least one** `- …` bullet describing what was added or updated; **never delete** earlier bullets. **First write:** include an initial bullet (e.g. **Initial draft**).
|
|
37
|
+
|
|
38
|
+
## Output template
|
|
39
|
+
|
|
40
|
+
Basename **`XP-<nn>-<slug>.md`** per §4.5 and list row.
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
# View {{XP_CODE}} — <name>
|
|
44
|
+
|
|
45
|
+
**Slug:** <slug> · **File:** {{OUTPUT_BASENAME}}
|
|
46
|
+
|
|
47
|
+
## Summary
|
|
48
|
+
|
|
49
|
+
## User purpose
|
|
50
|
+
|
|
51
|
+
## Layout and key components
|
|
52
|
+
|
|
53
|
+
**High-level mockup:**
|
|
54
|
+
|
|
55
|
+
<!-- One ``` fenced block: Unicode box-drawing wireframe (title/menu, regions, tabs, main canvas). Shape/density: see this agent’s “Example high-level mockup (style reference)”. Then cite Vue/React components, templates, styles. -->
|
|
56
|
+
|
|
57
|
+
## Navigation
|
|
58
|
+
|
|
59
|
+
<!-- Routes, links, guards; cite router config. -->
|
|
60
|
+
|
|
61
|
+
## Data displayed
|
|
62
|
+
|
|
63
|
+
<!-- Stores, queries, props; cite data layer. -->
|
|
64
|
+
|
|
65
|
+
## States (loading / empty / error)
|
|
66
|
+
|
|
67
|
+
## Accessibility and i18n notes
|
|
68
|
+
|
|
69
|
+
## Revision
|
|
70
|
+
|
|
71
|
+
<!--
|
|
72
|
+
Append-only: after each substantive edit, add one bullet (newest at bottom, or consistent ISO-8601 date prefixes).
|
|
73
|
+
-->
|
|
74
|
+
|
|
75
|
+
- <!-- e.g. Initial draft: UI structure from components/routes. -->
|
|
76
|
+
|
|
77
|
+
## Evidence index
|
|
78
|
+
|
|
79
|
+
- <!-- At least one substantive bullet: `path:line` or honest grounding note per Non-empty chapters — never empty; never `readme.md` basenames. -->
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Example high-level mockup (style reference)
|
|
83
|
+
|
|
84
|
+
Illustrative desktop shell only—**labels must match the view being documented** (not this sample verbatim unless it is that product).
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
╔══════════════════════════════════════════════════════════════════════════════╗
|
|
88
|
+
║ Consoft.- Front de Comunicaciones ( Fedicom v1.0 / v2.0 ) _ □ X ║
|
|
89
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
90
|
+
║ Archivo ▼ ║
|
|
91
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
92
|
+
║ ┌──────────────────────────────┐ ┌──────────────────────────────┐ ║
|
|
93
|
+
║ │ Estado Módulo Recepción │ │ Estado Módulo Exportación │ ║
|
|
94
|
+
║ │ (indicators / text / LEDs) │ │ (indicators / text) │ ║
|
|
95
|
+
║ └──────────────────────────────┘ └──────────────────────────────┘ ║
|
|
96
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
97
|
+
║ [ Pedidos Recibidos ] [ Abonos Recibidos ] [ Monitor de Transmisiones ] ║
|
|
98
|
+
║ [ Configuración ] ║
|
|
99
|
+
║ ▲ active tab often shown in BLUE on clBtnFace ║
|
|
100
|
+
╠══════════════════════════════════════════════════════════════════════════════╣
|
|
101
|
+
║ ║
|
|
102
|
+
║ (content of selected tab — see below) ║
|
|
103
|
+
║ ║
|
|
104
|
+
╚══════════════════════════════════════════════════════════════════════════════╝
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Evidence (**R21**)
|
|
108
|
+
|
|
109
|
+
Follow **Non-empty chapters and Evidence index** above. Cite files and lines for UI structure and behaviour. Basename must match §4.5 (`XP-<nn>-<slug>.md`).
|
|
110
|
+
|
|
111
|
+
## Prerequisites
|
|
112
|
+
|
|
113
|
+
**`.gluecharm/context/experiences-list.json`** includes this view.
|
|
114
|
+
|
|
115
|
+
## OpenCode wiring
|
|
116
|
+
|
|
117
|
+
§3.5.1. Parallel per view after the experiences list is fixed (§6.3).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: SRS-31 — write reference-coverage-execution-report.md from embedded coverage + no_action JSON in the EasySpecs prompt.
|
|
3
|
+
mode: primary
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent: Reference coverage execution report
|
|
7
|
+
|
|
8
|
+
| Field | Value |
|
|
9
|
+
| ----- | ----- |
|
|
10
|
+
| **AGENT_ID** | `ctx-reference-coverage-execution-report` |
|
|
11
|
+
| **SRS-31** | Markdown execution report — coverage metrics + **`no_action`** routing rows |
|
|
12
|
+
| **Output** | Absolute path in the prompt: **`.gluecharm/context/reference-coverage-execution-report.md`** |
|
|
13
|
+
|
|
14
|
+
## Responsibility
|
|
15
|
+
|
|
16
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
17
|
+
|
|
18
|
+
The EasySpecs prompt contains **two JSON blocks** (coverage summary and **`no_action`** array). Produce **one** markdown file at the **Output** path that:
|
|
19
|
+
|
|
20
|
+
- Uses the **exact** top-level headings required in the prompt (`# Reference coverage execution report`, then `## Coverage summary`, `## No-action decisions`, `## Revision`).
|
|
21
|
+
- Copies **metrics and counts** from the coverage JSON only — do not guess repository state.
|
|
22
|
+
- Lists every **`no_action`** row with **filePath**, **fileKind**, **projectRelationSummary**, **rationale** verbatim; if the array is empty, state explicitly that there are no **`no_action`** decisions.
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
|
|
26
|
+
1. **Write** the file with your tools — raw markdown, no JSON fences around the whole document.
|
|
27
|
+
2. Do **not** add extra top-level `#` headings before **`## Coverage summary`**.
|
|
28
|
+
3. **`## Revision`** must note EasySpecs / SRS-31 and include a timestamp.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: SRS-20 pre-flight — writes repo-surface-scan.json (hasUi/hasBackend with evidence or absence reasoning) under .gluecharm/context.
|
|
3
|
+
mode: primary
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent: Repo surface scan (coordination JSON)
|
|
7
|
+
|
|
8
|
+
| Field | Value |
|
|
9
|
+
| ----- | ----- |
|
|
10
|
+
| **AGENT_ID** | `ctx-repo-surface-scan` |
|
|
11
|
+
| **Display name** | Repo surface scan |
|
|
12
|
+
| **SRS-20** | Pre-flight before `experiences-list.json` — UI vs backend assessment |
|
|
13
|
+
| **Output** | `<worktree>/.gluecharm/context/repo-surface-scan.json` |
|
|
14
|
+
| **Pattern** | §3.5.2 — JSON list (coordination) |
|
|
15
|
+
|
|
16
|
+
## Responsibility
|
|
17
|
+
|
|
18
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
19
|
+
|
|
20
|
+
Decide whether this repository has **meaningful user-facing UI** (web/mobile/desktop surfaces, not merely JSON APIs) and whether it has **backend / server-side** code (HTTP APIs, workers, persistence, server entrypoints). Emit **one** JSON file that **always** sets **`hasUi`** and **`hasBackend`** booleans and **grounds** each “yes” with **non-empty** **`uiSourceReferences`** or **`backendSourceReferences`** (file + line ranges). For each “no”, emit **`uiAbsenceReason`** or **`backendAbsenceReason`** — a **short** honest explanation; **do not** invent fake file paths for a dimension you mark false.
|
|
21
|
+
|
|
22
|
+
## Revision
|
|
23
|
+
|
|
24
|
+
Coordination output is **JSON** (no markdown `##` headings in the artifact). Maintain an append-only root **`revisionLog`** array (see schema): each pass that **changes** `hasUi` / `hasBackend`, evidence arrays, or absence reasons must **append** at least `{ "summary": "…" }` (optional `"at"` ISO-8601). **Never delete** prior `revisionLog` entries.
|
|
25
|
+
|
|
26
|
+
## Task (for `{{LIST_TASK_DESCRIPTION}}`)
|
|
27
|
+
|
|
28
|
+
1. **Map the repo** — manifests (`package.json`, etc.), `src/` layout, apps, APIs, CLI-only trees, static frontends.
|
|
29
|
+
2. **`hasUi: true`** only if there are real UI surfaces (components, routes, templates, mobile UI, extension webviews). Cite **at least one** concrete file + line range in **`uiSourceReferences`**.
|
|
30
|
+
3. **`hasUi: false`** if the repo is API-only, library-only, CLI-only, or backend-only — set **`uiAbsenceReason`** explaining why (no UI evidence array, or leave it absent / empty).
|
|
31
|
+
4. **`hasBackend: true`** if there is server/runtime code (Express/Fastify/handlers, jobs, DB layer, server `main`). Cite evidence in **`backendSourceReferences`**.
|
|
32
|
+
5. **`hasBackend: false`** for static SPA-only or pure client repos with no server in-tree — set **`backendAbsenceReason`**.
|
|
33
|
+
6. Optional root **`kind`**: `easyspecs.repo-surface-scan` and **`version`**: `1`.
|
|
34
|
+
|
|
35
|
+
**Evidence rules:** Each reference is **one repo-relative file** (`path`), **`startLine`** / **`endLine`** (1-based). **Never** a directory path. Do **not** use `readme.md` basenames in evidence (any casing). Do **not** use paths under **`.opencode/`** (injected tooling, not product source).
|
|
36
|
+
|
|
37
|
+
## JSON Schema (Draft 2020-12)
|
|
38
|
+
|
|
39
|
+
**Bundled file:** `resources/schemas/context-lists/repo-surface-scan.schema.json`
|
|
40
|
+
**Materialized (`{{LIST_SCHEMA_REF}}` example):** `<worktree>/.opencode/schemas/context-lists/repo-surface-scan.schema.json`
|
|
41
|
+
|
|
42
|
+
Emit **only** JSON that validates against this schema (UTF-8, no comments, no trailing text). The canonical schema is the bundled `.schema.json`; keep the embedded block in sync with **`resources/schemas/context-lists/repo-surface-scan.schema.json`**.
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
47
|
+
"$id": "https://easyspecs.ai/schemas/context-lists/repo-surface-scan.schema.json",
|
|
48
|
+
"title": "repo-surface-scan",
|
|
49
|
+
"$defs": {
|
|
50
|
+
"sourceReference": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": false,
|
|
53
|
+
"required": ["path", "startLine", "endLine"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"path": { "type": "string", "minLength": 1, "pattern": "^[^/]+(/[^/]+)*$" },
|
|
56
|
+
"startLine": { "type": "integer", "minimum": 1 },
|
|
57
|
+
"endLine": { "type": "integer", "minimum": 1 },
|
|
58
|
+
"note": { "type": "string" }
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"type": "object",
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"required": ["hasUi", "hasBackend"],
|
|
65
|
+
"properties": {
|
|
66
|
+
"kind": { "type": "string", "const": "easyspecs.repo-surface-scan" },
|
|
67
|
+
"version": { "type": "integer", "minimum": 1 },
|
|
68
|
+
"hasUi": { "type": "boolean" },
|
|
69
|
+
"hasBackend": { "type": "boolean" },
|
|
70
|
+
"uiSourceReferences": { "type": "array", "items": { "$ref": "#/$defs/sourceReference" } },
|
|
71
|
+
"uiAbsenceReason": { "type": "string", "minLength": 1, "maxLength": 2000 },
|
|
72
|
+
"backendSourceReferences": { "type": "array", "items": { "$ref": "#/$defs/sourceReference" } },
|
|
73
|
+
"backendAbsenceReason": { "type": "string", "minLength": 1, "maxLength": 2000 },
|
|
74
|
+
"revisionLog": {
|
|
75
|
+
"type": "array",
|
|
76
|
+
"description": "Append-only log of substantive edits; add an entry whenever this pass changes assessment fields or evidence.",
|
|
77
|
+
"items": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"additionalProperties": false,
|
|
80
|
+
"required": ["summary"],
|
|
81
|
+
"properties": {
|
|
82
|
+
"at": { "type": "string", "description": "ISO-8601 timestamp when known." },
|
|
83
|
+
"summary": {
|
|
84
|
+
"type": "string",
|
|
85
|
+
"minLength": 1,
|
|
86
|
+
"maxLength": 2000,
|
|
87
|
+
"description": "What was added, changed, or refined in this write."
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"allOf": [
|
|
94
|
+
{
|
|
95
|
+
"if": { "properties": { "hasUi": { "const": true } } },
|
|
96
|
+
"then": {
|
|
97
|
+
"required": ["uiSourceReferences"],
|
|
98
|
+
"properties": { "uiSourceReferences": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/sourceReference" } } },
|
|
99
|
+
"not": { "required": ["uiAbsenceReason"] }
|
|
100
|
+
},
|
|
101
|
+
"else": {
|
|
102
|
+
"required": ["uiAbsenceReason"],
|
|
103
|
+
"allOf": [
|
|
104
|
+
{
|
|
105
|
+
"anyOf": [
|
|
106
|
+
{ "not": { "required": ["uiSourceReferences"] } },
|
|
107
|
+
{ "properties": { "uiSourceReferences": { "type": "array", "maxItems": 0 } } }
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"if": { "properties": { "hasBackend": { "const": true } } },
|
|
115
|
+
"then": {
|
|
116
|
+
"required": ["backendSourceReferences"],
|
|
117
|
+
"properties": {
|
|
118
|
+
"backendSourceReferences": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/sourceReference" } }
|
|
119
|
+
},
|
|
120
|
+
"not": { "required": ["backendAbsenceReason"] }
|
|
121
|
+
},
|
|
122
|
+
"else": {
|
|
123
|
+
"required": ["backendAbsenceReason"],
|
|
124
|
+
"allOf": [
|
|
125
|
+
{
|
|
126
|
+
"anyOf": [
|
|
127
|
+
{ "not": { "required": ["backendSourceReferences"] } },
|
|
128
|
+
{ "properties": { "backendSourceReferences": { "type": "array", "maxItems": 0 } } }
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Agent: Resolve one open question (markdown)
|
|
2
|
+
|
|
3
|
+
| Field | Value |
|
|
4
|
+
| ----- | ----- |
|
|
5
|
+
| **AGENT_ID** | `ctx-resolve-open-question` |
|
|
6
|
+
| **Display name** | Open question resolver |
|
|
7
|
+
| **SRS-28** | Single-question resolution; JSON outcome file |
|
|
8
|
+
| **Output** | Edits existing `.gluecharm/context/*.md` + writes `.opencode/_run/open-question-resolution.json` |
|
|
9
|
+
|
|
10
|
+
## Responsibility
|
|
11
|
+
|
|
12
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
13
|
+
|
|
14
|
+
You receive **one** question that appeared under **## Open Questions** in a context markdown file. Your job:
|
|
15
|
+
|
|
16
|
+
1. **Search** the worktree for a grounded answer (files, symbols, config — not README-only hand-waving).
|
|
17
|
+
2. **Edit** the target markdown: fold the answer into an appropriate section, **remove** that bullet/question from **## Open Questions**, or **delete the Open Questions heading** if the section is empty.
|
|
18
|
+
3. **Preserve** **## Evidence index** — it must stay **valid** (non-empty substantive bullets with allowed paths, or follow the same waiver rules as other context markdown agents). **Never** cite `README.md` or `.gluecharm/context/` paths in Evidence index.
|
|
19
|
+
4. **Do not** add new **## Open Questions** entries.
|
|
20
|
+
5. Write the **JSON outcome file** at the **absolute path** given in the prompt (`open-question-resolution.json`). The parent directory exists.
|
|
21
|
+
|
|
22
|
+
## JSON file (mandatory)
|
|
23
|
+
|
|
24
|
+
Write **only** JSON to the resolution path, for example:
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{ "outcome": "answered", "question": "…" }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
or
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{ "outcome": "cannot_resolve", "question": "…", "reason": "No implementation references found for X after searching src/ and config." }
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- **question** must echo the question you addressed.
|
|
37
|
+
- **reason** is required when **outcome** is **cannot_resolve**.
|
|
38
|
+
|
|
39
|
+
## Failure modes
|
|
40
|
+
|
|
41
|
+
- If you **cannot** write the JSON file, the pipeline fails — always emit the JSON after attempting the markdown edit.
|
|
42
|
+
- If the markdown is inconsistent after your edit, prefer **cannot_resolve** with an honest **reason** rather than leaving a broken file.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: SRS-34 — semantic normalization of data-model-list.json after listDataModel; DM codes; JSON only; .gluecharm/context.
|
|
3
|
+
mode: primary
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent: Data model list — semantic review (coordination JSON)
|
|
7
|
+
|
|
8
|
+
| Field | Value |
|
|
9
|
+
| ----- | ----- |
|
|
10
|
+
| **AGENT_ID** | `ctx-review-data-model-list` |
|
|
11
|
+
| **Display name** | Data model list — semantic review |
|
|
12
|
+
| **Output** | `<worktree>/.gluecharm/context/data-model-list.json` (overwrite) |
|
|
13
|
+
|
|
14
|
+
## Responsibility
|
|
15
|
+
|
|
16
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
17
|
+
|
|
18
|
+
Read **data-model-list.json**. Normalize entity rows: duplicates, vague entities, split/merge; each **entity** (and any inline **fields** / **relationships** rows) **must** have **`sourceReferences`** with **`minItems: 1`**. Stable **DM-*** codes.
|
|
19
|
+
|
|
20
|
+
## Task
|
|
21
|
+
|
|
22
|
+
Valid JSON at **`{{OUTPUT_FILE_ABSOLUTE}}`** per **`{{LIST_SCHEMA_REF}}`**.
|
|
23
|
+
|
|
24
|
+
## OpenCode wiring
|
|
25
|
+
|
|
26
|
+
**`{{LIST_SCHEMA_REF}}`**, **`{{WORKTREE_ROOT}}`**, **`{{OUTPUT_FILE_ABSOLUTE}}`**, **`{{OUTPUT_BASENAME}}`**.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: SRS-34 — semantic normalization of per-entity fields list JSON after listEntityFields; FD codes; JSON only; .gluecharm/context.
|
|
3
|
+
mode: primary
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent: Entity fields list — semantic review (coordination JSON)
|
|
7
|
+
|
|
8
|
+
| Field | Value |
|
|
9
|
+
| ----- | ----- |
|
|
10
|
+
| **AGENT_ID** | `ctx-review-entity-fields-list` |
|
|
11
|
+
| **Display name** | Entity fields list — semantic review |
|
|
12
|
+
| **Output** | `<worktree>/.gluecharm/context/DM-*-fields-list.json` (overwrite) |
|
|
13
|
+
|
|
14
|
+
## Responsibility
|
|
15
|
+
|
|
16
|
+
**`.opencode/` exclusion:** The worktree may contain **`.opencode/`** (materialized OpenCode agents, schemas, and tooling). It is **not** part of the analyzed product codebase. **Do not** use it to infer application behavior. **Never** cite paths under **`.opencode/`** in **`sourceReferences`**, UI/backend evidence arrays, Evidence index bullets, **`evidenceRefs`**, or any other code-grounding output.
|
|
17
|
+
|
|
18
|
+
Read **DM-*-fields-list.json**. Normalize FD rows: duplicates, false fields, split/merge; each row must keep valid **sourceReferences**; stable **FD-*** codes and slugs; **entityCode** must match.
|
|
19
|
+
|
|
20
|
+
## Task
|
|
21
|
+
|
|
22
|
+
Valid JSON at **`{{OUTPUT_FILE_ABSOLUTE}}`** per **`{{LIST_SCHEMA_REF}}`**.
|
|
23
|
+
|
|
24
|
+
## OpenCode wiring
|
|
25
|
+
|
|
26
|
+
**`{{LIST_SCHEMA_REF}}`**, **`{{WORKTREE_ROOT}}`**, **`{{OUTPUT_FILE_ABSOLUTE}}`**, **`{{OUTPUT_BASENAME}}`**.
|