@techierathore/techieflow 1.0.2 → 1.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/.claude/commands/TechieFlow/agents/analyst.md +0 -5
- package/.claude/commands/TechieFlow/agents/architect.md +0 -6
- package/.claude/commands/TechieFlow/agents/flow-master.md +41 -215
- package/.claude/commands/TechieFlow/agents/verifier.md +23 -64
- package/.claude/commands/TechieFlow/tasks/_metrics-emit-gate.md +24 -117
- package/.claude/commands/TechieFlow/tasks/_smoke-test-policy.md +20 -84
- package/.claude/commands/TechieFlow/tasks/_status-update-gate.md +10 -74
- package/.claude/commands/TechieFlow/tasks/_yolo-mode.md +20 -58
- package/.claude/commands/TechieFlow/tasks/amend-docs.md +20 -143
- package/.claude/commands/TechieFlow/tasks/build-phase.md +14 -224
- package/.claude/commands/TechieFlow/tasks/day1-brownfield.md +31 -505
- package/.claude/commands/TechieFlow/tasks/day1-greenfield.md +28 -213
- package/.claude/commands/TechieFlow/tasks/deploy-checklist.md +19 -0
- package/.claude/commands/TechieFlow/tasks/devguide.md +10 -219
- package/.claude/commands/TechieFlow/tasks/fix-issues.md +10 -129
- package/.claude/commands/TechieFlow/tasks/log-miss.md +19 -158
- package/.claude/commands/TechieFlow/tasks/metrics-report.md +1 -1
- package/.claude/commands/TechieFlow/tasks/mockups.md +12 -117
- package/.claude/commands/TechieFlow/tasks/refresh-status.md +9 -130
- package/.claude/commands/TechieFlow/tasks/split-brd.md +10 -126
- package/.claude/commands/TechieFlow/tasks/triage-and-fix.md +14 -0
- package/.claude/commands/TechieFlow/tasks/triage-issues.md +11 -152
- package/.claude/commands/TechieFlow/tasks/verify-phase.md +36 -572
- package/.opencode/plugin/techieflow.js +39 -12
- package/.tfcore/agents/analyst.md +0 -5
- package/.tfcore/agents/architect.md +0 -6
- package/.tfcore/agents/flow-master.md +41 -215
- package/.tfcore/agents/verifier.md +23 -64
- package/.tfcore/core-config.yaml +10 -0
- package/.tfcore/hooks/block-git.sh +4 -4
- package/.tfcore/hooks/guard-artifacts.sh +2 -2
- package/.tfcore/hooks/guard-build.sh +76 -0
- package/.tfcore/hooks/guard-db.sh +90 -0
- package/.tfcore/hooks/guard-metrics.sh +56 -0
- package/.tfcore/hooks/guard-status-html.sh +116 -71
- package/.tfcore/hooks/guard-status.sh +43 -16
- package/.tfcore/hooks/guard-verify.sh +70 -48
- package/.tfcore/hooks/sweep-artifacts.sh +2 -2
- package/.tfcore/install-manifest.yaml +0 -18
- package/.tfcore/routing.yaml +25 -14
- package/.tfcore/standards/coding-standards-core.md +61 -0
- package/.tfcore/standards/coding-standards-dotnet.md +93 -0
- package/.tfcore/tasks/_metrics-emit-gate.md +24 -117
- package/.tfcore/tasks/_smoke-test-policy.md +20 -84
- package/.tfcore/tasks/_status-update-gate.md +10 -74
- package/.tfcore/tasks/_yolo-mode.md +20 -58
- package/.tfcore/tasks/amend-docs.md +20 -143
- package/.tfcore/tasks/build-phase.md +14 -224
- package/.tfcore/tasks/day1-brownfield.md +31 -505
- package/.tfcore/tasks/day1-greenfield.md +28 -213
- package/.tfcore/tasks/deploy-checklist.md +19 -0
- package/.tfcore/tasks/devguide.md +10 -219
- package/.tfcore/tasks/fix-issues.md +10 -129
- package/.tfcore/tasks/log-miss.md +19 -158
- package/.tfcore/tasks/metrics-report.md +1 -1
- package/.tfcore/tasks/mockups.md +12 -117
- package/.tfcore/tasks/refresh-status.md +9 -130
- package/.tfcore/tasks/split-brd.md +10 -126
- package/.tfcore/tasks/triage-and-fix.md +14 -0
- package/.tfcore/tasks/triage-issues.md +11 -152
- package/.tfcore/tasks/verify-phase.md +36 -572
- package/.tfcore/telemetry/SCHEMA.md +43 -7
- package/.tfcore/telemetry/tf-metrics.sh +152 -17
- package/.tfcore/templates/project-brief-tmpl.yaml +1 -1
- package/.tfcore/templates/stack-defaults/dotnet.md +35 -0
- package/.tfcore/templates/stack-questions.md +77 -0
- package/.tfcore/templates/v4custom/app-agents-md-tmpl.md +3 -4
- package/.tfcore/templates/v4custom/app-architecture-tmpl.md +107 -115
- package/.tfcore/templates/v4custom/app-brd-tmpl.md +108 -184
- package/.tfcore/templates/v4custom/app-checklist-tmpl.md +48 -73
- package/.tfcore/templates/v4custom/app-claude-md-tmpl.md +1 -1
- package/.tfcore/templates/v4custom/app-coding-standards-tmpl.md +52 -0
- package/.tfcore/templates/v4custom/app-deployment-checklist-tmpl.md +86 -0
- package/.tfcore/templates/v4custom/app-devguide-tmpl.md +69 -146
- package/.tfcore/templates/v4custom/app-phases-tmpl.md +35 -0
- package/.tfcore/templates/v4custom/app-productguide-tmpl.md +38 -35
- package/.tfcore/templates/v4custom/app-project-status-tmpl.md +63 -73
- package/.tfcore/templates/v4custom/app-uidesign-tmpl.md +62 -37
- package/.tfcore/templates/v4custom/app-usageguide-tmpl.md +69 -54
- package/.tfcore/templates/v4custom/build-invocation-ladder.md +17 -180
- package/.tfcore/templates/v4custom/build-subagent-prompt.md +17 -0
- package/.tfcore/templates/v4custom/metrics-report-template.md +2 -2
- package/.tfcore/user-guide.md +0 -23
- package/.tfcore/utils/__pycache__/tf-brd-status.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-checklist-edit.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-codex-bind.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-codex-telemetry.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-day1-files.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-devguide-list.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-doc-check.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-log-miss.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-misses-md.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-mockups-locate.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-opencode-audit.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-perf-grade.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-render-html.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-split-brd.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-status-facts.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-triage.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-verify-list.cpython-312.pyc +0 -0
- package/.tfcore/utils/__pycache__/tf-verify-verdict.cpython-312.pyc +0 -0
- package/.tfcore/utils/tf-brd-status.py +176 -0
- package/.tfcore/utils/tf-brd-status.sh +19 -0
- package/.tfcore/utils/tf-build-list.py +191 -0
- package/.tfcore/utils/tf-build-list.sh +20 -0
- package/.tfcore/utils/tf-build.sh +143 -0
- package/.tfcore/utils/tf-cdp-relay.ps1 +64 -0
- package/.tfcore/utils/tf-checklist-edit.py +133 -0
- package/.tfcore/utils/tf-day1-files.py +208 -0
- package/.tfcore/utils/tf-day1-files.sh +20 -0
- package/.tfcore/utils/tf-devguide-list.py +249 -0
- package/.tfcore/utils/tf-devguide-list.sh +18 -0
- package/.tfcore/utils/tf-doc-check.py +1267 -0
- package/.tfcore/utils/tf-doc-check.sh +29 -0
- package/.tfcore/utils/tf-emit.sh +203 -13
- package/.tfcore/utils/tf-fix-close.sh +83 -0
- package/.tfcore/utils/tf-goal.sh +193 -62
- package/.tfcore/utils/tf-harness.sh +4 -9
- package/.tfcore/utils/tf-log-miss.py +197 -0
- package/.tfcore/utils/tf-log-miss.sh +14 -0
- package/.tfcore/utils/tf-misses-md.py +211 -0
- package/.tfcore/utils/tf-misses-md.sh +13 -0
- package/.tfcore/utils/tf-mockups-locate.py +66 -0
- package/.tfcore/utils/tf-mockups-locate.sh +18 -0
- package/.tfcore/utils/tf-opencode-audit.py +23 -7
- package/.tfcore/utils/tf-perf-grade.py +97 -0
- package/.tfcore/utils/tf-perf-grade.sh +12 -0
- package/.tfcore/utils/tf-phase.sh +74 -0
- package/.tfcore/utils/tf-routing-bind.sh +10 -5
- package/.tfcore/utils/tf-routing.sh +6 -7
- package/.tfcore/utils/tf-split-brd.py +304 -0
- package/.tfcore/utils/tf-split-brd.sh +22 -0
- package/.tfcore/utils/tf-status-evidence.sh +68 -0
- package/.tfcore/utils/tf-status-facts.py +309 -0
- package/.tfcore/utils/tf-status-facts.sh +20 -0
- package/.tfcore/utils/tf-triage.py +243 -0
- package/.tfcore/utils/tf-triage.sh +16 -0
- package/.tfcore/utils/tf-verify-boot.sh +250 -0
- package/.tfcore/utils/tf-verify-emit.sh +110 -0
- package/.tfcore/utils/tf-verify-env.sh +88 -0
- package/.tfcore/utils/tf-verify-list.py +270 -0
- package/.tfcore/utils/tf-verify-list.sh +13 -0
- package/.tfcore/utils/tf-verify-screens.mjs +283 -0
- package/.tfcore/utils/tf-verify-screens.sh +22 -0
- package/.tfcore/utils/tf-verify-tests.sh +123 -0
- package/.tfcore/utils/tf-verify-verdict.py +283 -0
- package/.tfcore/utils/tf-verify-verdict.sh +15 -0
- package/.tfcore/utils/tf-yolo.sh +59 -0
- package/README.md +114 -1149
- package/docs/TechieFlow-Installation.md +1 -5
- package/opencode.jsonc +13 -33
- package/package.json +1 -5
- package/scripts/install.mjs +52 -46
- package/.claude/commands/TechieFlow/tasks/advanced-elicitation.md +0 -117
- package/.claude/commands/TechieFlow/tasks/author-brd.md +0 -79
- package/.claude/commands/TechieFlow/tasks/document-project.md +0 -343
- package/.claude/commands/TechieFlow/tasks/execute-checklist.md +0 -86
- package/.claude/commands/TechieFlow/tasks/index-docs.md +0 -173
- package/.claude/commands/TechieFlow/tasks/kb-mode-interaction.md +0 -75
- package/.claude/commands/TechieFlow/tasks/shard-doc.md +0 -185
- package/.codex/config.toml +0 -46
- package/.codex/hooks.json +0 -63
- package/.codex/rules/techieflow.rules +0 -8
- package/.tfcore/hooks/codex-adapter.py +0 -248
- package/.tfcore/tasks/advanced-elicitation.md +0 -117
- package/.tfcore/tasks/author-brd.md +0 -79
- package/.tfcore/tasks/document-project.md +0 -343
- package/.tfcore/tasks/execute-checklist.md +0 -86
- package/.tfcore/tasks/index-docs.md +0 -173
- package/.tfcore/tasks/kb-mode-interaction.md +0 -75
- package/.tfcore/tasks/shard-doc.md +0 -185
- package/.tfcore/utils/tf-codex-bind.py +0 -196
- package/.tfcore/utils/tf-codex-telemetry.py +0 -60
- package/WORKFLOW.html +0 -1986
|
@@ -1,54 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
<!-- tf-schema
|
|
2
|
+
doc: productguide
|
|
3
|
+
file: docs/{App}-ProductGuide.md
|
|
4
|
+
header: App, Size, Date
|
|
5
|
+
section: Welcome | required | max 150
|
|
6
|
+
section: Getting started | required
|
|
7
|
+
section: Roles at a glance | optional
|
|
8
|
+
section: Using* | required
|
|
9
|
+
section: Troubleshooting | optional
|
|
10
|
+
entries: Using* |
|
|
11
|
+
rule: entry-steps
|
|
12
|
+
rule: entry-screenshot
|
|
13
|
+
budget: S 2500 3500 | M 4500 6500 | L 4500 6500
|
|
14
|
+
-->
|
|
15
|
+
<!-- Authoring notes (agent only; never visible text).
|
|
16
|
+
The end user's manual: plain language, task by task, one real screenshot per task, no code and no
|
|
17
|
+
requirement ids. "Roles at a glance" only when there is more than one role. The Using section is
|
|
18
|
+
titled "Using {App}"; one `###` per task in the order a user meets them. -->
|
|
19
|
+
|
|
20
|
+
# {App} — Product Guide
|
|
21
|
+
|
|
22
|
+
| | |
|
|
23
|
+
|---|---|
|
|
24
|
+
| App | {App} |
|
|
25
|
+
| Size | Small, Medium or Large |
|
|
26
|
+
| Date | {YYYY-MM-DD} |
|
|
13
27
|
|
|
14
28
|
## Welcome
|
|
15
29
|
|
|
16
|
-
|
|
30
|
+
{What it does and who it is for, at most 150 words.}
|
|
17
31
|
|
|
18
32
|
## Getting started
|
|
19
33
|
|
|
20
|
-
|
|
21
|
-
|
|
34
|
+
1. {Open … and sign in.}
|
|
35
|
+
2. {What you see first.}
|
|
22
36
|
|
|
23
|
-

|
|
24
38
|
|
|
25
39
|
## Roles at a glance
|
|
26
40
|
|
|
27
|
-
<one row per user role/persona, plain-language "what this role can do" — derived from the BRD personas + the DevGuide's role→menu map.>
|
|
28
|
-
|
|
29
41
|
| Role | What you can do |
|
|
30
|
-
|
|
42
|
+
|---|---|
|
|
31
43
|
| {Role} | {one line} |
|
|
32
44
|
|
|
33
|
-
## Using {
|
|
34
|
-
|
|
35
|
-
<!-- One `## {Role or Area}` section, then one `### {Feature / Screen}` block per screen, in the order a
|
|
36
|
-
user would naturally use them (navigation order from the DevGuide's menu map). Each block is
|
|
37
|
-
task-oriented and carries the REAL screenshot captured by the DevGuide OBSERVE pass. For a large
|
|
38
|
-
app this section is split per role into docs/productguides/ (see the task). -->
|
|
39
|
-
|
|
40
|
-
### {Feature / Screen name}
|
|
45
|
+
## Using {App}
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
### {Task name}
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
1. {step — what the user clicks/enters}
|
|
49
|
+
1. {step}
|
|
46
50
|
2. {step}
|
|
47
|
-
3. {what
|
|
51
|
+
3. {what you should see}
|
|
48
52
|
|
|
49
|
-

|
|
50
54
|
|
|
51
|
-
|
|
55
|
+
## Troubleshooting
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
screens that an external user never touches, unless the role section is the admin guide. -->
|
|
57
|
+
- {problem}: {what to do}
|
|
@@ -1,98 +1,88 @@
|
|
|
1
|
+
<!-- tf-schema
|
|
2
|
+
doc: project-status
|
|
3
|
+
file: PROJECT-STATUS.md
|
|
4
|
+
header: project, last_updated, current_phase, last_verified_build, last_verified_date
|
|
5
|
+
section: Where I am | required | max 80
|
|
6
|
+
section: Next command to run | required | max 60
|
|
7
|
+
section: Open requirements | required | max 200
|
|
8
|
+
section: Known blockers | required | max 150
|
|
9
|
+
section: Verification log | required | max 250
|
|
10
|
+
section: Library feedback summary | required | max 60
|
|
11
|
+
section: Standards compliance | required | max 60
|
|
12
|
+
section: Deferred / future | required | max 100
|
|
13
|
+
max-lines: 120
|
|
14
|
+
target-lines: 60
|
|
15
|
+
rule: next-command-blocks
|
|
16
|
+
rule: verification-log
|
|
17
|
+
rule: open-requirements-max-10
|
|
18
|
+
-->
|
|
19
|
+
<!-- Authoring notes (agent only; never visible text).
|
|
20
|
+
A one-page snapshot of the CURRENT state, overwritten in place, never appended to. Exactly the
|
|
21
|
+
eight sections above, in this order, with their word limits; guard-status.sh refuses any other
|
|
22
|
+
heading and any write over 120 lines; tf-doc-check.sh refuses over-long sections. What a run did
|
|
23
|
+
is not written here: a run adds ONE Verification-log row (at most five kept) and updates the
|
|
24
|
+
checklist Remarks; the rest lives in the telemetry streams.
|
|
25
|
+
Next command to run: exactly two code blocks, one line each, labelled Claude Code then OpenCode,
|
|
26
|
+
so either can be copied on its own. No prose about the technical work. -->
|
|
27
|
+
|
|
1
28
|
---
|
|
2
|
-
project: {
|
|
3
|
-
stack: .NET 9 / Blazor [Server|WASM|Auto] / TrBlazeUI / TechieRag / [MAUI]
|
|
29
|
+
project: {App}
|
|
4
30
|
last_updated: {YYYY-MM-DD}
|
|
5
|
-
current_phase:
|
|
6
|
-
last_verified_build: PASS | FAIL | not-run
|
|
31
|
+
current_phase: {Day-1 | Build | Verify | UAT | Handoff | Released} — {at most a half-line qualifier}
|
|
32
|
+
last_verified_build: {PASS | FAIL | not-run}
|
|
7
33
|
last_verified_date: {YYYY-MM-DD}
|
|
8
34
|
---
|
|
9
35
|
|
|
10
|
-
# {
|
|
11
|
-
|
|
12
|
-
<!--
|
|
13
|
-
============================================================================
|
|
14
|
-
THIS FILE IS A CRISP, FIXED-SHAPE SNAPSHOT — OVERWRITE IT, NEVER APPEND TO IT.
|
|
15
|
-
It has exactly the sections below and NO others. It should stay well under
|
|
16
|
-
~60 lines — a human reads it in ten seconds.
|
|
17
|
-
|
|
18
|
-
When you update status you REPLACE the content of these sections in place.
|
|
19
|
-
Do NOT add a new dated section per run. The following are BANNED (they are
|
|
20
|
-
what turns this file into an unreadable 280-line append-log):
|
|
21
|
-
- A per-run prose H2 like "## *verify all — formal coverage matrix (DATE)",
|
|
22
|
-
"## *fix-issues — …", "## *build-phase — …". A run records its outcome as
|
|
23
|
-
ONE row in "## Verification log" + updated Remarks IN THE CHECKLIST. Period.
|
|
24
|
-
- A paragraph crammed into `current_phase:` or "## Where I am". `current_phase`
|
|
25
|
-
is ONE short line. The blow-by-blow lives in the checklist Remarks + .verify/.
|
|
26
|
-
See .tfcore/tasks/_status-update-gate.md §"CRISP, FIXED-SHAPE snapshot".
|
|
27
|
-
ENFORCED MECHANICALLY: the .tfcore/hooks/guard-status.sh PreToolUse hook
|
|
28
|
-
BLOCKS any write that adds a non-template H2, a command-run heading, a
|
|
29
|
-
paragraph current_phase, or a file longer than ~120 lines.
|
|
30
|
-
============================================================================
|
|
31
|
-
-->
|
|
36
|
+
# {App} — Status
|
|
32
37
|
|
|
33
38
|
## Where I am
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
still to be done (how to wire a service, fix a binding, etc.) — that lives in the checklist REQ rows.>
|
|
39
|
+
|
|
40
|
+
{At most 80 words: which phase, what is built and verified, what is open. State, not story.}
|
|
37
41
|
|
|
38
42
|
## Next command to run
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
GOOD:
|
|
46
|
-
```
|
|
47
|
-
/TechieFlow:agents:verifier *verify ui (OpenCode: /flow-verifier *verify ui)
|
|
48
|
-
```
|
|
49
|
-
Resumes FAILed REQ-UI-007, REQ-UI-012 in docs/{AppName}-Checklist.md.
|
|
50
|
-
|
|
51
|
-
BAD (do not do this — technical narrative belongs in the checklist, not here):
|
|
52
|
-
Next, wire the AstroData service into the dashboard, fix the empty ruling-planet
|
|
53
|
-
table binding, add validation to the onboarding form, then re-run verification...
|
|
54
|
-
-->
|
|
43
|
+
|
|
44
|
+
Claude Code:
|
|
45
|
+
```
|
|
46
|
+
/TechieFlow:agents:flow-master *build-phase {App}
|
|
47
|
+
```
|
|
48
|
+
OpenCode:
|
|
55
49
|
```
|
|
56
|
-
|
|
50
|
+
/flow-master *build-phase {App}
|
|
57
51
|
```
|
|
58
|
-
|
|
52
|
+
{Optional one line naming the target REQ ids.}
|
|
59
53
|
|
|
60
54
|
## Open requirements
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
|
|
56
|
+
| Status | Count |
|
|
57
|
+
|---|---|
|
|
58
|
+
| Not Started | {n} |
|
|
59
|
+
| In Progress | {n} |
|
|
60
|
+
| Implemented | {n} |
|
|
61
|
+
| Needs re-verify | {n} |
|
|
62
|
+
| Blocked | {n} |
|
|
63
|
+
|
|
64
|
+
- [ ] REQ-UI-001 — {short name} (at most ten named rows)
|
|
63
65
|
|
|
64
66
|
## Known blockers
|
|
65
|
-
- None / <list>
|
|
66
|
-
<!--
|
|
67
|
-
Known blockers are PROJECT-level issues — broken code, missing tests, real compile errors, hardcoded secrets, etc.
|
|
68
|
-
They are NOT environment / wrong-rung issues. Banned entries (these go in WORKFLOW.html §0 territory, not here):
|
|
69
|
-
- "MAUI build cannot run on WSL"
|
|
70
|
-
- "NETSDK1178 — iOS/Android/MacCatalyst workload missing"
|
|
71
|
-
- "Microsoft.iOS.Sdk / Microsoft.Android.Sdk / Microsoft.MacCatalyst.Sdk missing"
|
|
72
|
-
- "dotnet not in PATH"
|
|
73
|
-
- Anything that means "I used the wrong build invocation ladder rung"
|
|
74
|
-
If you wrote one of those, you skipped .tfcore/templates/v4custom/build-invocation-ladder.md.
|
|
75
|
-
Switch rungs and rebuild.
|
|
76
|
-
-->
|
|
77
67
|
|
|
68
|
+
- None
|
|
78
69
|
|
|
79
70
|
## Verification log
|
|
80
|
-
|
|
81
|
-
|
|
71
|
+
|
|
72
|
+
Last five passes; older passes live in `docs/metrics/gates.jsonl`.
|
|
73
|
+
|
|
82
74
|
| Date | Phase | Result | Status table |
|
|
83
|
-
|
|
84
|
-
| {YYYY-MM-DD} |
|
|
75
|
+
|---|---|---|---|
|
|
76
|
+
| {YYYY-MM-DD} | {verify all} | {14/14 Verified} | docs/{App}-Checklist.md#requirements-status |
|
|
85
77
|
|
|
86
78
|
## Library feedback summary
|
|
87
|
-
- TrBlazeUI: 0 major, 0 minor — docs/{AppName}-TrBlazeUI-Feedback.md
|
|
88
|
-
- TechieRag: 0 major, 0 minor — docs/{AppName}-TechieRag-Feedback.md
|
|
89
79
|
|
|
90
|
-
|
|
80
|
+
- {Library}: {n} open — docs/{App}-{Library}-Feedback.md
|
|
81
|
+
|
|
82
|
+
## Standards compliance
|
|
91
83
|
|
|
92
|
-
|
|
93
|
-
- Underscore fields: not yet run
|
|
94
|
-
- Test method underscores: not yet run
|
|
95
|
-
- Mis-prefixed fields: not yet run
|
|
84
|
+
- Last check {YYYY-MM-DD}: {n} findings, see the checklist Remarks.
|
|
96
85
|
|
|
97
86
|
## Deferred / future
|
|
98
|
-
|
|
87
|
+
|
|
88
|
+
- {parked ideas, one line each}
|
|
@@ -1,48 +1,73 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- tf-schema
|
|
2
|
+
doc: uidesign
|
|
3
|
+
file: docs/{App}-UIDesign.md
|
|
4
|
+
header: App, Kind, Size, UI library, Theme
|
|
5
|
+
section: Design system | required | max 300
|
|
6
|
+
section: Screens | required
|
|
7
|
+
section: Click-through flow | optional-small
|
|
8
|
+
section: Branding guide | optional
|
|
9
|
+
entries: Screens | Screen:
|
|
10
|
+
per-entry: 250 400
|
|
11
|
+
rule: entry-mockup
|
|
12
|
+
rule: entry-regions-table
|
|
13
|
+
rule: entry-fields-table
|
|
14
|
+
rule: entry-states
|
|
15
|
+
rule: mockup-links
|
|
16
|
+
-->
|
|
17
|
+
<!-- Authoring notes (agent only; never visible text).
|
|
18
|
+
One `### Screen: Name (/route)` per routed page, in navigation order. The mockup shows the layout;
|
|
19
|
+
the entry lists what the mockup cannot say: regions to controls, fields with validation, the dialogs
|
|
20
|
+
the screen opens, and the empty, loading and error states. Do not describe in prose what the mockup
|
|
21
|
+
already shows. Use only controls that exist in the UI library's catalogue; a missing control goes
|
|
22
|
+
to the library feedback file, not into a workaround. The set of screens must equal the BRD's
|
|
23
|
+
Screens and flow table. For a library, this document is optional.
|
|
24
|
+
Large project: one UIDesign per phase (docs/{App}-UIDesign.md, docs/{App}-P2-UIDesign.md, …) with a
|
|
25
|
+
header row "| Phase | n of m |"; its screens are exactly that phase's row in docs/{App}-Phases.md.
|
|
26
|
+
The mockup folder stays one click-through set across every phase. -->
|
|
27
|
+
|
|
28
|
+
# {App} — UI Design
|
|
29
|
+
|
|
30
|
+
| | |
|
|
31
|
+
|---|---|
|
|
32
|
+
| App | {App} |
|
|
33
|
+
| Kind | app or library |
|
|
34
|
+
| Size | Small, Medium or Large |
|
|
35
|
+
| UI library | {library and version} |
|
|
36
|
+
| Theme | {light, dark, both} |
|
|
37
|
+
|
|
38
|
+
## Design system
|
|
39
|
+
|
|
40
|
+
- **Layout shell:** {top nav, sidebar, both; the layout components used}
|
|
41
|
+
- **Theme:** {…}
|
|
42
|
+
- **Shared controls:** {the controls every screen uses}
|
|
43
|
+
- **Rules:** {spacing, density, responsive breakpoints in one line each}
|
|
2
44
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
<!-- Auto-maintained. Slug rule: .tfcore/templates/v4custom/html-render-shell.md §1. List each `### Screen: ...` under "Screens". -->
|
|
8
|
-
|
|
9
|
-
1. [How to use](#how-to-use)
|
|
10
|
-
2. [Design system (TrBlazeUI)](#design-system-trblazeui)
|
|
11
|
-
3. [Screens](#screens)
|
|
12
|
-
|
|
13
|
-
## How to use
|
|
14
|
-
|
|
15
|
-
- Every screen below links to its rendered mockup in `docs/mockups/`. Open those `.html` files in a browser to see the intended layout.
|
|
16
|
-
- The **Component map** is the build contract: `region → TrBlazeUI control`. Only controls that actually exist in the TrBlazeUI library are used (the analyst read the component catalog first). If a screen needs something the library lacks, it is flagged here and logged to `docs/{AppName}-TrBlazeUI-Feedback.md`.
|
|
17
|
-
- To change a screen after approval: run `*mockups {AppName} --update` (or `*amend-docs` for a requirement change that adds screens).
|
|
18
|
-
|
|
19
|
-
## Design system (TrBlazeUI)
|
|
45
|
+
## Screens
|
|
20
46
|
|
|
21
|
-
|
|
22
|
-
- **Layout shell:** {top nav / sidebar / both — name the TrBlazeUI layout components}.
|
|
23
|
-
- **Theme:** light/dark per the shared shell; warm off-white light default.
|
|
24
|
-
- **Controls inventory used:** {list the TrBlazeUI controls this app's screens rely on — e.g. `TrNavMenu`, `TrCard`, `TrDataGrid`, `TrForm`, `TrButton`, `TrChart`, `TrDialog`}.
|
|
47
|
+
### Screen: {Name} (`/route`)
|
|
25
48
|
|
|
26
|
-
|
|
49
|
+
**Mockup:** [mockups/{screen-slug}.html](mockups/{screen-slug}.html) · **Roles:** {who reaches it} · **BRD:** BRD-{N}
|
|
27
50
|
|
|
28
|
-
|
|
29
|
-
|
|
51
|
+
| Region | Control | Shows or binds |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| {Top nav} | {control} | {…} |
|
|
54
|
+
| {Main list} | {control} | {…} |
|
|
30
55
|
|
|
31
|
-
|
|
56
|
+
| Field | Type | Required | Validation |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| {Title} | text | yes | {1 to 120 characters} |
|
|
32
59
|
|
|
33
|
-
**
|
|
60
|
+
**Dialogs opened here:** {Dialog name: fields …; or "none"}
|
|
34
61
|
|
|
35
|
-
**
|
|
62
|
+
**States:** empty: {…} · loading: {…} · error: {…}
|
|
36
63
|
|
|
37
|
-
|
|
64
|
+
## Click-through flow
|
|
38
65
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
| Trend chart | `TrChart` (line) | {series} | empty: "no data yet" |
|
|
44
|
-
| Activity | `TrDataGrid` | {columns} | empty row message; paged |
|
|
66
|
+
```mermaid
|
|
67
|
+
flowchart LR
|
|
68
|
+
A["Login"] --> B["Home"]
|
|
69
|
+
```
|
|
45
70
|
|
|
46
|
-
|
|
71
|
+
## Branding guide
|
|
47
72
|
|
|
48
|
-
|
|
73
|
+
{Only when colours or type differ from the library defaults.}
|
|
@@ -1,67 +1,82 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- tf-schema
|
|
2
|
+
doc: usageguide
|
|
3
|
+
file: docs/{App}-UsageGuide.md
|
|
4
|
+
header: App, Kind, Size, Date
|
|
5
|
+
section: Test users | required
|
|
6
|
+
section: Execution guide | required
|
|
7
|
+
section: How to test, screen by screen | required
|
|
8
|
+
section: Automated tests | required
|
|
9
|
+
section: Known limitations | required
|
|
10
|
+
section: Platform notes | optional
|
|
11
|
+
section: How to call it | library
|
|
12
|
+
entries: How to test, screen by screen |
|
|
13
|
+
per-entry: 90 120
|
|
14
|
+
budget: S 2500 3500 | M 4000 6000 | L 4000 6000
|
|
15
|
+
rule: test-users-table
|
|
16
|
+
rule: execution-code
|
|
17
|
+
rule: entry-steps
|
|
18
|
+
rule: entry-expected
|
|
19
|
+
-->
|
|
20
|
+
<!-- Authoring notes (agent only; never visible text).
|
|
21
|
+
The owner's test plan. Every agent (smoke, verify) and the owner's UAT use the SAME test users and
|
|
22
|
+
the SAME walkthrough; nobody invents accounts. One `###` per screen in navigation order, at most
|
|
23
|
+
120 words: who to sign in as, numbered steps, the expected result, the REQ ids covered.
|
|
24
|
+
The Execution guide is copy-pasteable commands, one per line, no narrative. Hosting and production
|
|
25
|
+
deployment are not here; they are in the Deployment Checklist after UAT.
|
|
26
|
+
For a library, "How to call it" says how a consumer installs and registers the package and gives one call
|
|
27
|
+
example per public service or component; the maintainer's map of each service is the DevGuide's. -->
|
|
28
|
+
|
|
29
|
+
# {App} — Usage Guide
|
|
30
|
+
|
|
31
|
+
| | |
|
|
32
|
+
|---|---|
|
|
33
|
+
| App | {App} |
|
|
34
|
+
| Kind | app or library |
|
|
35
|
+
| Size | Small, Medium or Large |
|
|
36
|
+
| Date | {YYYY-MM-DD} |
|
|
37
|
+
|
|
38
|
+
## Test users
|
|
39
|
+
|
|
40
|
+
| # | User | Password source | Role | Exists |
|
|
41
|
+
|---|---|---|---|---|
|
|
42
|
+
| 1 | {admin@app.test} | {user secrets key, seed script} | {Admin} | {yes, no} |
|
|
43
|
+
|
|
44
|
+
## Execution guide
|
|
45
|
+
|
|
46
|
+
Prerequisites: {runtime and version, database, anything else, one line}.
|
|
2
47
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
| # | Username / Email | Password | Role / Permission | Created? | Notes |
|
|
10
|
-
|---|------------------|----------|-------------------|----------|-------|
|
|
11
|
-
| 1 | {admin@app.test} | {Pass!23} | Admin | ⬜ | {seeded by … / create on first build} |
|
|
12
|
-
| 2 | {user1@app.test} | {Pass!23} | Standard user | ⬜ | {…} |
|
|
13
|
-
| 3 | {…} | {…} | {role} | ⬜ | {…} |
|
|
48
|
+
```
|
|
49
|
+
{restore command}
|
|
50
|
+
{database setup or migration command}
|
|
51
|
+
{build command}
|
|
52
|
+
{run command, with the URL it serves}
|
|
53
|
+
```
|
|
14
54
|
|
|
15
|
-
|
|
16
|
-
- **To add or confirm an account:** edit this table — it is the registry the whole pipeline reads from.
|
|
17
|
-
- **Seeding:** if the project seeds users via a migration / `database/*-seed-*.sql` / a DbUp step, reference it here so the accounts above are reproducible from a clean DB.
|
|
55
|
+
Open {http://localhost:port} and sign in as user 1.
|
|
18
56
|
|
|
19
|
-
## How to test
|
|
57
|
+
## How to test, screen by screen
|
|
20
58
|
|
|
21
|
-
|
|
59
|
+
### {Screen name}
|
|
60
|
+
- **Sign in as:** {user # from the table}
|
|
61
|
+
- **Steps:** 1) {action} 2) {action} 3) {action}
|
|
62
|
+
- **Expected:** {what proves it works}
|
|
63
|
+
- **Covers:** {REQ ids}
|
|
22
64
|
|
|
23
|
-
|
|
65
|
+
## Automated tests
|
|
24
66
|
|
|
25
|
-
```mermaid
|
|
26
|
-
flowchart LR
|
|
27
|
-
A["User submits form"] --> B{"Valid?"}
|
|
28
|
-
B -->|"yes"| C["Save + confirm"]
|
|
29
|
-
B -->|"no"| D["Show error"]
|
|
30
67
|
```
|
|
68
|
+
{test command}
|
|
69
|
+
```
|
|
70
|
+
{One line: what the suite covers.}
|
|
31
71
|
|
|
32
|
-
|
|
33
|
-
- **Log in as:** {user # from the table above}
|
|
34
|
-
- **Steps:** 1) {action} → 2) {action} → 3) {action}
|
|
35
|
-
- **Expected:** {observable result — what proves the feature works}
|
|
36
|
-
- **Covers:** {BRD-N / REQ-* IDs this walkthrough exercises}
|
|
37
|
-
|
|
38
|
-
_(Repeat one block per screen/menu until every feature in the BRD feature catalog is covered. This is the human UAT script AND the map the verifier/smoke use to decide what to exercise.)_
|
|
39
|
-
|
|
40
|
-
## Prerequisites
|
|
41
|
-
- .NET {N} SDK
|
|
42
|
-
- {OtherRuntime — e.g. Node 20 for Playwright, PostgreSQL 16, etc. — one line each, only if actually required}
|
|
43
|
-
|
|
44
|
-
## Setup / Deployment steps (runbook — one command per line, in order)
|
|
72
|
+
## Known limitations
|
|
45
73
|
|
|
46
|
-
|
|
74
|
+
- {one line each, with the REQ or feedback id}
|
|
47
75
|
|
|
48
|
-
|
|
49
|
-
2. `dotnet restore`
|
|
50
|
-
3. {database setup — one line per SQL file in lexicographic order, or a single DbUp `dotnet run --project src/{AppName}.Db` step. Include the test-user seed step if one exists.}
|
|
51
|
-
4. `dotnet build`
|
|
52
|
-
5. {run the backend — one command, e.g. `dotnet run --project src/{AppName}.Api --urls http://localhost:5100`}
|
|
53
|
-
6. {run the frontend — one command, e.g. `dotnet run --project src/{AppName}.Web --urls http://localhost:5099`}
|
|
54
|
-
7. Open `http://localhost:5099` in a browser; log in as a Test user from the table above.
|
|
76
|
+
## Platform notes
|
|
55
77
|
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
dotnet test
|
|
59
|
-
```
|
|
60
|
-
{Add `npx playwright test` ONLY if the repo has Playwright tests checked in.}
|
|
78
|
+
{Only when the app runs on more than one platform.}
|
|
61
79
|
|
|
62
|
-
##
|
|
63
|
-
- [ ] {one tight line per top-level BRD capability — 5-10 boxes max; each a user action using a Test user above, e.g. "Log in as Admin (user 1), open the dashboard"}
|
|
80
|
+
## How to call it
|
|
64
81
|
|
|
65
|
-
|
|
66
|
-
- {TR-NNN — short title — see docs/{AppName}-TrBlazeUI-Feedback.md (or TR-RAG-NNN → docs/{AppName}-TechieRag-Feedback.md)}
|
|
67
|
-
- {`Blocked` (library-gap) REQ-* items from the checklist Status tables, one line each}
|
|
82
|
+
{Libraries only. How to install and register the package, then one call example per public service or component. The maintainer's map of each service is in the DevGuide.}
|