@andresmassello/uscha 1.53.0 → 1.55.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.
@@ -18,6 +18,34 @@ The human brings the idea, the constraints and the reference material. **You bri
18
18
  shape.** Your job is to interrogate until there is a shared system shape, and to write
19
19
  the documents as you go — not to ask the human to design the system for you.
20
20
 
21
+ ## First contact (show ONCE, then never again)
22
+
23
+ **Only when this project has no uscha artifacts yet** -- no `QA-LEDGER.json`, no `SPEC.md` or
24
+ `ACCEPTANCE.md`, no `docs/adr/` -- open with this block, then start working. If any of those
25
+ exist, the operator already knows the method: skip it entirely and go straight to the
26
+ breadcrumb. Repeating it every run would be exactly the ceremony the method forbids.
27
+
28
+ ```
29
+ [uscha · discovery · START]
30
+ Method: you bring the idea, the method builds the rest. Facts block, guesses advise;
31
+ nothing closes on a checkbox, and the human approves the merge.
32
+ Here: I grill you ONE question at a time, each with my recommended answer. You decide.
33
+ Output: CONTEXT.md · SPEC.md · docs/adr/*.md · ACCEPTANCE.md · RISKS.md
34
+ Next: `/uscha-devloop` builds against the package. No code until the package exists.
35
+ Stop: say so at any point -- whatever is already written stays.
36
+ ```
37
+
38
+ **Bilingual by construction.** The labels (`START`, `Method`, `Here`, `Output`, `Next`,
39
+ `Stop`) stay VERBATIM in English -- they are the method's vocabulary and the smoke suite checks
40
+ for them mechanically, which is only possible if they never move. The wording after each label
41
+ is the canonical English; **render it in the operator's language**. If they are writing to you
42
+ in Spanish, the whole block reads in Spanish under English labels. Do not translate the labels,
43
+ do not leave the content in English when they are not writing in English.
44
+
45
+ Unlike the close block, `Next` here MAY name the nominal route: on a first run there is no
46
+ measured state to derive from yet, so the nominal path is the honest answer. From the close
47
+ block onward, derived state wins.
48
+
21
49
  ## Orientation markers (non-negotiable)
22
50
 
23
51
  The operator must never have to ask "where am I?" or "what happens now?". Two markers, always.
@@ -18,6 +18,36 @@ disable-model-invocation: false
18
18
  opposite. The system already runs; its observable behavior is the ground truth. **You do
19
19
  not invent anything — you characterize what is already there, as facts.**
20
20
 
21
+ ## First contact (show ONCE, then never again)
22
+
23
+ **Only when this project has no uscha artifacts yet** -- no `QA-LEDGER.json`, no `SPEC.md` or
24
+ `ACCEPTANCE.md`, no `docs/adr/` -- open with this block, then start working. If any of those
25
+ exist, the operator already knows the method: skip it entirely and go straight to the
26
+ breadcrumb. Repeating it every run would be exactly the ceremony the method forbids.
27
+
28
+ ```
29
+ [uscha · reverse-discovery · START]
30
+ Method: you bring the idea, the method builds the rest. Facts block, guesses advise;
31
+ nothing closes on a checkbox, and the human approves the merge.
32
+ Here: I EXTRACT facts from the system that already exists. I never invent its spec -- you write that reading my facts.
33
+ Output: SYSTEM-MAP.md · DISCOVERY-SUMMARY.md -- endpoints, contracts, dependency graph,
34
+ module candidates. Facts only: the SPEC and the ADRs are yours to write.
35
+ Next: `/uscha-characterize` freezes current behavior and a HUMAN approves the golden;
36
+ only then do you write the migration SPEC, reading these facts + that golden.
37
+ Stop: say so at any point -- whatever is already written stays.
38
+ ```
39
+
40
+ **Bilingual by construction.** The labels (`START`, `Method`, `Here`, `Output`, `Next`,
41
+ `Stop`) stay VERBATIM in English -- they are the method's vocabulary and the smoke suite checks
42
+ for them mechanically, which is only possible if they never move. The wording after each label
43
+ is the canonical English; **render it in the operator's language**. If they are writing to you
44
+ in Spanish, the whole block reads in Spanish under English labels. Do not translate the labels,
45
+ do not leave the content in English when they are not writing in English.
46
+
47
+ Unlike the close block, `Next` here MAY name the nominal route: on a first run there is no
48
+ measured state to derive from yet, so the nominal path is the honest answer. From the close
49
+ block onward, derived state wins.
50
+
21
51
  ## Orientation markers (non-negotiable)
22
52
 
23
53
  The operator must never have to ask "where am I?" or "what happens now?". Two markers, always.
@@ -21,6 +21,34 @@ contract + `qa_ledger.py rubric-ingest` (stdlib, runs anywhere). ANY runner can
21
21
  the grader — this skill just wraps the neutral prompt so Claude Code users get it
22
22
  in one command. Never add Claude-specific behavior to the contract.
23
23
 
24
+ ## First contact (show ONCE, then never again)
25
+
26
+ **Only when this project has no uscha artifacts yet** -- no `QA-LEDGER.json`, no `SPEC.md` or
27
+ `ACCEPTANCE.md`, no `docs/adr/` -- open with this block, then start working. If any of those
28
+ exist, the operator already knows the method: skip it entirely and go straight to the
29
+ breadcrumb. Repeating it every run would be exactly the ceremony the method forbids.
30
+
31
+ ```
32
+ [uscha · rubric · START]
33
+ Method: you bring the idea, the method builds the rest. Facts block, guesses advise;
34
+ nothing closes on a checkbox, and the human approves the merge.
35
+ Here: I grade what tests cannot: conventions, error handling, API ergonomics, doc quality -- against your versioned RUBRIC.md.
36
+ Output: a graded verdict ingested into the ledger (advisory unless you declared it a gate)
37
+ Next: back to `/uscha-devloop`, or the human gate if the loop already converged.
38
+ Stop: say so at any point -- whatever is already written stays.
39
+ ```
40
+
41
+ **Bilingual by construction.** The labels (`START`, `Method`, `Here`, `Output`, `Next`,
42
+ `Stop`) stay VERBATIM in English -- they are the method's vocabulary and the smoke suite checks
43
+ for them mechanically, which is only possible if they never move. The wording after each label
44
+ is the canonical English; **render it in the operator's language**. If they are writing to you
45
+ in Spanish, the whole block reads in Spanish under English labels. Do not translate the labels,
46
+ do not leave the content in English when they are not writing in English.
47
+
48
+ Unlike the close block, `Next` here MAY name the nominal route: on a first run there is no
49
+ measured state to derive from yet, so the nominal path is the honest answer. From the close
50
+ block onward, derived state wins.
51
+
24
52
  ## Orientation markers (non-negotiable)
25
53
 
26
54
  The operator must never have to ask "where am I?" or "what happens now?". Two markers, always.
@@ -21,6 +21,34 @@ switch between at any time:
21
21
  - **Technical track** — architecture, modules, data flow, contracts, QA results,
22
22
  coverage, known deferred issues.
23
23
 
24
+ ## First contact (show ONCE, then never again)
25
+
26
+ **Only when this project has no uscha artifacts yet** -- no `QA-LEDGER.json`, no `SPEC.md` or
27
+ `ACCEPTANCE.md`, no `docs/adr/` -- open with this block, then start working. If any of those
28
+ exist, the operator already knows the method: skip it entirely and go straight to the
29
+ breadcrumb. Repeating it every run would be exactly the ceremony the method forbids.
30
+
31
+ ```
32
+ [uscha · sysdoc · START]
33
+ Method: you bring the idea, the method builds the rest. Facts block, guesses advise;
34
+ nothing closes on a checkbox, and the human approves the merge.
35
+ Here: I build a two-track deck (commercial + technical) from what the ledger already measured.
36
+ Output: a single self-contained HTML deck
37
+ Next: nothing -- this is a read-only artifact you share.
38
+ Stop: say so at any point -- whatever is already written stays.
39
+ ```
40
+
41
+ **Bilingual by construction.** The labels (`START`, `Method`, `Here`, `Output`, `Next`,
42
+ `Stop`) stay VERBATIM in English -- they are the method's vocabulary and the smoke suite checks
43
+ for them mechanically, which is only possible if they never move. The wording after each label
44
+ is the canonical English; **render it in the operator's language**. If they are writing to you
45
+ in Spanish, the whole block reads in Spanish under English labels. Do not translate the labels,
46
+ do not leave the content in English when they are not writing in English.
47
+
48
+ Unlike the close block, `Next` here MAY name the nominal route: on a first run there is no
49
+ measured state to derive from yet, so the nominal path is the honest answer. From the close
50
+ block onward, derived state wins.
51
+
24
52
  ## Orientation markers (non-negotiable)
25
53
 
26
54
  The operator must never have to ask "where am I?" or "what happens now?". Two markers, always.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.53.0",
2
+ "version": "1.55.0",
3
3
  "project": null,
4
4
  "defaults": {
5
5
  "coverage_threshold": 60,