meto-cli 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,140 @@
1
+ # Tester Rubric — Slice {{SLICE_ID}}
2
+
3
+ <!-- Fill in all fields before submitting the rubric. Incomplete rubrics are not valid evaluations. -->
4
+
5
+ **Tester:** {{TESTER_NAME}}
6
+ **Date:** {{DATE}}
7
+ **Slice:** {{SLICE_ID}}
8
+
9
+ ---
10
+
11
+ ## Grading Dimensions
12
+
13
+ Score each dimension on a 1–3 scale using the criteria below. Every score below 3 requires a written critique (see Critique Format section).
14
+
15
+ ---
16
+
17
+ ### 1. Code Quality
18
+
19
+ | Score | Criteria |
20
+ |-------|----------|
21
+ | 3 | Code is readable, well-structured, no dead code, no magic numbers, all identifiers are descriptive |
22
+ | 2 | Mostly readable with minor issues: one or two unclear names, a stray commented block, or a magic number with obvious intent |
23
+ | 1 | Code is difficult to follow, contains dead code, relies on unexplained magic numbers, or has significant structural problems |
24
+
25
+ **Score:** ___
26
+
27
+ **Critique (required if score < 3):**
28
+
29
+ <!-- One sentence of actionable feedback. Point to a specific file and line number where possible. Example: "src/cli/audit/scanner.ts:42 uses the magic number 20 — extract it as a named constant MAX_BAR_WIDTH." -->
30
+
31
+ ---
32
+
33
+ ### 2. Type Safety
34
+
35
+ | Score | Criteria |
36
+ |-------|----------|
37
+ | 3 | No `any` types anywhere, `tsc --noEmit` exits 0 with zero errors or warnings |
38
+ | 2 | One suppressed `any` with a clear justification comment, or `tsc` exits 0 but with a minor type assertion that is technically safe |
39
+ | 1 | `any` type used without justification, `tsc --noEmit` exits non-zero, or type errors are suppressed silently |
40
+
41
+ **Score:** ___
42
+
43
+ **Critique (required if score < 3):**
44
+
45
+ <!-- One sentence. Example: "src/cli/init/renderer.ts:88 uses `as any` to bypass a union type — the correct fix is to narrow the type with a type guard." -->
46
+
47
+ ---
48
+
49
+ ### 3. Test Coverage
50
+
51
+ | Score | Criteria |
52
+ |-------|----------|
53
+ | 3 | Failing test written before implementation (red→green confirmed), all acceptance criteria have at least one corresponding test, `npx vitest run` exits 0 |
54
+ | 2 | Tests cover most acceptance criteria but one AC has no direct test, or the red→green order cannot be verified but tests are otherwise complete |
55
+ | 1 | Tests added after the fact without red→green discipline, one or more acceptance criteria have no test, or `npx vitest run` exits non-zero |
56
+
57
+ **Score:** ___
58
+
59
+ **Critique (required if score < 3):**
60
+
61
+ <!-- One sentence. Example: "The 'minimum pass threshold' AC has no test — add a test asserting that a dimension scored 1 causes the rubric evaluation to return FAIL regardless of other scores." -->
62
+
63
+ ---
64
+
65
+ ### 4. Convention Adherence
66
+
67
+ | Score | Criteria |
68
+ |-------|----------|
69
+ | 3 | Commit message matches the format `type(scope): description [agent-tag]`, file naming follows project conventions, no `console.log`, no hardcoded scaffold content in `/src/` |
70
+ | 2 | One minor convention violation (e.g. missing agent tag in commit, a slightly inconsistent file name) with no functional impact |
71
+ | 1 | Commit message does not follow the format, `console.log` present in committed code, scaffold content hardcoded in source, or multiple convention violations |
72
+
73
+ **Score:** ___
74
+
75
+ **Critique (required if score < 3):**
76
+
77
+ <!-- One sentence. Example: "Commit a3f9c1b is missing the [dev-agent] tag — amend or note in the next commit message." -->
78
+
79
+ ---
80
+
81
+ ### 5. Methodology Compliance
82
+
83
+ | Score | Criteria |
84
+ |-------|----------|
85
+ | 3 | Sprint contract exists at `ai/contracts/slice-{{SLICE_ID}}-contract.md` and is signed by both agents, task definition was followed exactly, no out-of-scope work delivered |
86
+ | 2 | Sprint contract exists and is signed but has one minor gap (e.g. an edge case that was agreed verbally but not written into the contract), or a very small out-of-scope addition with clear justification |
87
+ | 1 | No sprint contract, contract not signed before code was written, significant out-of-scope work delivered, or task definition was materially deviated from |
88
+
89
+ **Score:** ___
90
+
91
+ **Critique (required if score < 3):**
92
+
93
+ <!-- One sentence. Example: "ai/contracts/slice-088-contract.md was not signed before implementation began — retroactive sign-off does not satisfy the contract-first rule." -->
94
+
95
+ ---
96
+
97
+ ## Minimum Pass Threshold
98
+
99
+ <!-- Do not modify this section. It is part of the rubric definition. -->
100
+
101
+ - All dimensions must score **2 or higher** to pass.
102
+ - Any dimension scoring **1 is an automatic fail** — the slice returns to todo regardless of other scores.
103
+ - A score of 2 across all dimensions is a **conditional pass** — the tester must note in the rubric table what must be improved in the next slice or a follow-up task.
104
+ - A score of 3 across all dimensions is a **clean pass**.
105
+
106
+ **Overall result:** PASS / CONDITIONAL PASS / FAIL _(circle one)_
107
+
108
+ ---
109
+
110
+ ## Critique Format
111
+
112
+ For each dimension that scored below 3, write exactly one sentence of actionable feedback. The sentence must:
113
+
114
+ 1. Name the specific problem (not "code quality issues" — name the actual issue)
115
+ 2. Point to a file and line number where possible
116
+ 3. State the corrective action the developer should take
117
+
118
+ **Do not write critiques for dimensions that scored 3.** Silence on a dimension means it passed cleanly.
119
+
120
+ ---
121
+
122
+ ## Verification Commands Run
123
+
124
+ <!-- List every command you ran and its exit code. Never evaluate by reading code alone. -->
125
+
126
+ | Command | Exit Code | Notes |
127
+ |---------|-----------|-------|
128
+ | `npx vitest run` | | |
129
+ | `npx tsc --noEmit` | | |
130
+ | _(lint command if present)_ | | |
131
+
132
+ ---
133
+
134
+ ## Final Sign-off
135
+
136
+ By submitting this rubric, I confirm that I ran all verification commands in the current session and that every score reflects observed evidence, not assumption.
137
+
138
+ **Tester:** {{TESTER_NAME}}
139
+ **Date:** {{DATE}}
140
+ **Outcome:** PASS / CONDITIONAL PASS / FAIL _(circle one)_