vouchington-tooling 0.22.1 → 0.24.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.
Files changed (76) hide show
  1. package/README.md +102 -4
  2. package/dist/agent-blackboard/client.d.mts +34 -0
  3. package/dist/agent-blackboard/client.mjs +41 -0
  4. package/dist/agent-blackboard/feedback-canonical.d.mts +1 -0
  5. package/dist/agent-blackboard/feedback-canonical.mjs +13 -0
  6. package/dist/agent-blackboard/feedback-codec.d.mts +7 -0
  7. package/dist/agent-blackboard/feedback-codec.mjs +121 -0
  8. package/dist/agent-blackboard/feedback-compose.d.mts +37 -0
  9. package/dist/agent-blackboard/feedback-compose.mjs +109 -0
  10. package/dist/agent-blackboard/feedback-deadline.d.mts +1 -0
  11. package/dist/agent-blackboard/feedback-deadline.mjs +18 -0
  12. package/dist/agent-blackboard/feedback-delivery.d.mts +18 -0
  13. package/dist/agent-blackboard/feedback-delivery.mjs +88 -0
  14. package/dist/agent-blackboard/feedback-fields.d.mts +4 -0
  15. package/dist/agent-blackboard/feedback-fields.mjs +38 -0
  16. package/dist/agent-blackboard/feedback-identity.d.mts +2 -0
  17. package/dist/agent-blackboard/feedback-identity.mjs +29 -0
  18. package/dist/agent-blackboard/feedback-online-error.d.mts +7 -0
  19. package/dist/agent-blackboard/feedback-online-error.mjs +23 -0
  20. package/dist/agent-blackboard/feedback-online.d.mts +2 -0
  21. package/dist/agent-blackboard/feedback-online.mjs +137 -0
  22. package/dist/agent-blackboard/feedback-outbox.d.mts +8 -0
  23. package/dist/agent-blackboard/feedback-outbox.mjs +157 -0
  24. package/dist/agent-blackboard/feedback-types.d.mts +66 -0
  25. package/dist/agent-blackboard/feedback-types.mjs +1 -0
  26. package/dist/agent-blackboard/index.d.mts +16 -39
  27. package/dist/agent-blackboard/index.mjs +35 -81
  28. package/dist/cli/commands/agent-blackboard.mjs +35 -4
  29. package/dist/cli/usage.d.mts +1 -1
  30. package/dist/cli/usage.mjs +3 -1
  31. package/dist/markdown/details-scope.d.mts +13 -0
  32. package/dist/markdown/details-scope.mjs +73 -0
  33. package/dist/markdown/document-sections.d.mts +3 -0
  34. package/dist/markdown/document-sections.mjs +64 -0
  35. package/dist/markdown/document-types.d.mts +21 -0
  36. package/dist/markdown/document-types.mjs +1 -0
  37. package/dist/markdown/index.d.mts +3 -0
  38. package/dist/markdown/index.mjs +2 -0
  39. package/dist/markdown/validate-sections.d.mts +3 -0
  40. package/dist/markdown/validate-sections.mjs +34 -0
  41. package/dist/retrospective-facts/coverage.d.mts +6 -0
  42. package/dist/retrospective-facts/coverage.mjs +42 -0
  43. package/dist/retrospective-facts/index.d.mts +3 -0
  44. package/dist/retrospective-facts/index.mjs +18 -1
  45. package/dist/retrospective-transcript/codex.mjs +8 -3
  46. package/dist/retrospective-transcript/index.d.mts +5 -0
  47. package/dist/retrospective-transcript/index.mjs +29 -9
  48. package/dist/session-friction/classify.mjs +25 -14
  49. package/dist/session-friction/coverage-ledger.d.mts +10 -0
  50. package/dist/session-friction/coverage-ledger.mjs +75 -0
  51. package/dist/session-friction/index.d.mts +1 -1
  52. package/dist/session-friction/log-file.d.mts +2 -2
  53. package/dist/session-friction/log-file.mjs +22 -10
  54. package/dist/session-friction/log.mjs +57 -10
  55. package/dist/session-friction/report.mjs +36 -7
  56. package/dist/session-friction/sandbox.mjs +11 -4
  57. package/dist/session-friction/types.d.mts +25 -4
  58. package/dist/workflow-policy/index.d.mts +1 -1
  59. package/dist/workflow-policy/index.mjs +1 -1
  60. package/dist/workflow-policy/permission-declarations.d.mts +14 -0
  61. package/dist/workflow-policy/permission-declarations.mjs +55 -0
  62. package/dist/workflow-policy/permission-inheritance.d.mts +8 -0
  63. package/dist/workflow-policy/permission-inheritance.mjs +88 -0
  64. package/dist/workflow-policy/permission-mismatches.d.mts +4 -1
  65. package/dist/workflow-policy/permission-mismatches.mjs +14 -3
  66. package/docs/workflow-and-compiler.md +18 -1
  67. package/package.json +1 -1
  68. package/skills/agent-workflow/SKILL.md +5 -0
  69. package/skills/agent-workflow/references/review.md +3 -0
  70. package/skills/blackboard/SKILL.md +34 -14
  71. package/skills/manifest.json +21 -21
  72. package/skills/pr-description/SKILL.md +44 -10
  73. package/skills/pr-description/references/examples.md +136 -0
  74. package/skills/retrospective/SKILL.md +27 -16
  75. package/skills/retrospective-distill/SKILL.md +15 -6
  76. package/skills/review-ci-logs/SKILL.md +10 -0
@@ -0,0 +1,136 @@
1
+ # Description examples
2
+
3
+ These illustrative descriptions show how to keep conclusions visible while disclosing longer
4
+ evidence. Use the consumer's actual headings, policy links, issue relationships, and run evidence.
5
+ Do not copy a claim or figure unless the current change supports it.
6
+
7
+ ## Small behavior fix
8
+
9
+ ```markdown
10
+ ## Summary
11
+
12
+ Reopening the review dialog now cancels its pending reset. Previously, the reset cleared the
13
+ new selection because the timer outlived the closed state.
14
+
15
+ ## Impact
16
+
17
+ Staff can close and reopen a review without losing the new selection. Closing normally still
18
+ clears the old selection after the exit animation.
19
+ ```
20
+
21
+ No diagram, cost calculation, database inventory, or local successful-test list is needed.
22
+
23
+ ## Database relationship change
24
+
25
+ ```markdown
26
+ ## Summary
27
+
28
+ Recovery attempts now reference retained account identities through a foreign key. Previously,
29
+ an unvalidated identifier could refer to an account that no longer existed.
30
+
31
+ ## Impact
32
+
33
+ Operators can trace each attempt to a retained identity, and deletion cannot orphan recovery
34
+ history. The API's recovery response is unchanged. Storage cost is unmeasured; retaining an
35
+ identity row per deleted account adds storage proportional to account deletions.
36
+
37
+ <details>
38
+ <summary>Schema inventory and conformance</summary>
39
+
40
+ | Object | Before | After |
41
+ | --------------------------------------------- | ----------------------- | --------------------------------- |
42
+ | `account_identity` table | Absent | Retains each account's identity |
43
+ | `recovery_attempt.account_id` column | Unvalidated UUID | Removed |
44
+ | `recovery_attempt.account_identity_id` column | Absent | Required foreign key |
45
+ | Foreign-key constraint | Absent | References `account_identity(id)` |
46
+ | Lookup index | Uses the removed column | Uses `account_identity_id` |
47
+
48
+ The relationship uses a typed column and concrete foreign key, as required by the repository's
49
+ relational-storage policy. The current schema, recovery writer, account-deletion path, and
50
+ operator query change together. There is no dual reader or writer.
51
+
52
+ </details>
53
+ ```
54
+
55
+ In a real description, link the consumer's policy and implementation evidence. Do not prescribe
56
+ this consumer-specific retention or deployment policy for other repositories.
57
+
58
+ ## Workflow and cost change
59
+
60
+ ````markdown
61
+ ## Summary
62
+
63
+ Test jobs now run once per revision. Previously, changing a pull request's draft status started
64
+ a duplicate test run even though no test job consumed draft state.
65
+
66
+ ## Impact
67
+
68
+ Contributors keep the checks already attached to their revision when marking it ready. Estimated
69
+ runner use falls by one duplicate suite per draft-to-ready transition; the estimate assumes
70
+ one transition and a 12-minute suite. Aggregate savings are unmeasured.
71
+
72
+ <details>
73
+ <summary>Before and after event flow</summary>
74
+
75
+ ```mermaid
76
+ flowchart LR
77
+ subgraph Before
78
+ B1[Revision pushed] --> B3[Test suite]
79
+ B2[Draft marked ready] --> B4[Duplicate test suite]
80
+ end
81
+ subgraph After
82
+ A1[Revision pushed] --> A3[Test suite]
83
+ A2[Draft marked ready] --> A4[Merge eligibility only]
84
+ end
85
+ ```
86
+
87
+ </details>
88
+ ````
89
+
90
+ The diagram explains event ownership; a file list or arrows between the Summary and Impact sections
91
+ would not clarify the behavior. Link the run measurements supporting a real estimate.
92
+
93
+ ## Harness gap: omitted local verification
94
+
95
+ ```markdown
96
+ ## Harness gaps
97
+
98
+ CI found that the local pre-push command omitted the compiler-contract suite. The harness now
99
+ includes that suite, and the missing public export is fixed.
100
+
101
+ <details>
102
+ <summary>Failure and durable correction</summary>
103
+
104
+ The failed compiler-contract job on the first pushed revision reported the missing export.
105
+ The pre-push record ran the component project only; the compiler-contract project was omitted
106
+ because the command catalog did not include it. The catalog and pre-push selection now include
107
+ the project, and a public-import regression covers this export.
108
+
109
+ </details>
110
+ ```
111
+
112
+ The actual record must link the failing run/job and exact head SHA, plus the local scope and
113
+ correction evidence. Retain it when the corrected revision passes CI.
114
+
115
+ ## Harness gap: passed locally, failed in CI
116
+
117
+ ```markdown
118
+ ## Harness gaps
119
+
120
+ The contract suite passed locally but failed in CI because the local runner selected the host
121
+ architecture instead of the deployment target. Local validation now selects that target explicitly.
122
+
123
+ <details>
124
+ <summary>Local and CI scope difference</summary>
125
+
126
+ The pre-push record and failing job used the same suite on the same revision. Their target
127
+ configurations differed: local selected the host target, while CI compiled the deployment target.
128
+ The local command now uses the deployment target, and a compiler regression covers the rejected
129
+ cross-target import. This was a configuration mismatch, not an omitted suite.
130
+
131
+ </details>
132
+ ```
133
+
134
+ Link the concrete revision, failed job, local evidence, and correction in the actual record.
135
+ An external service outage, unavailable CI-only credentials, or unknown local execution history
136
+ does not support this claim. Explain such limitations separately when they affect the outcome.
@@ -12,20 +12,31 @@ Local policy overrides these defaults; do not reload an already-read adapter or
12
12
  Use at task completion or session close-out when the repository has a retrospective workflow. Read
13
13
  local `AGENTS.md`, and journal guidance first.
14
14
 
15
- 1. Check whether a retrospective already exists. Append only a material delta when local policy
16
- says to append.
17
- 2. Gather verifiable facts from the repository's approved status, validation, issue, and journal
18
- sources. Do not estimate unknown facts from memory or transcripts.
19
- 3. Summarize the outcome, plan-versus-actual differences, validation evidence, recurring friction,
20
- and actionable process improvements. Keep one-off noise separate from a repeatable root cause.
21
- Preserve each source entry's repository attribution when the journal supports it. A retrospective
22
- that spans repositories names every represented repository.
23
- 4. Save through the repository's required durable mechanism. Report the record identifier and any
24
- follow-up decisions.
15
+ 1. Read the agent's own journal oldest-first and check for an existing retrospective. Capture a
16
+ material new observation before filing a follow-up issue. Preserve entry-level repository tags.
17
+ 2. Generate routine repository and transcript facts with the approved composer. Keep exact factual
18
+ section markers generated, preserve unavailable counts, and never replace missing evidence with
19
+ invented zero statistics. Do not paste raw collectors' output or manually reconstruct facts.
20
+ 3. Record work outcome, feedback coverage, and delivery independently. Success, failure,
21
+ cancellation, timeout, no-change, and policy refusal each need truthful terminal reporting.
22
+ Missing or truncated sources are unavailable/partial; durable interactive pending remains pending.
23
+ Autonomous completion requires the controller's acknowledged terminal readback or visible block.
24
+ 4. Report observed first-party tool and architectural behavior with concrete evidence and a
25
+ disposition, including useful resolved outcomes and rejected proposals. None observed requires
26
+ the inspected scope. Not assessed or unavailable requires a reason. Do not turn a plausible
27
+ cause into an observed diagnosis or infer permission decisions from requests.
28
+ For applicable configured tools, report used versus skipped/unavailable with reasons, the owning
29
+ workflow or command-catalog entrypoint, and terminal result/action, especially pr-shepherd and no-mistakes.
30
+ 5. Keep the top five findings or improvements in the human prose. The bounded durable evidence can
31
+ retain additional relevant findings; a prose limit is not permission to silently discard them.
32
+ Separate recurring root causes from one-off noise and preserve existing issue references.
33
+ 6. Save through the shared validated writer. Interactive outages use the approved bounded private
34
+ outbox with visible pending count; failed persistence blocks capture. Autonomous reporting stays
35
+ online and never uses that outbox to authorize an attempt or completion. Report the acknowledged
36
+ record/receipt, or the actual pending/blocked state and next replay action.
25
37
 
26
- Use raw evidence only for local verification. Save only bounded structured facts or redacted
27
- summaries in a durable retrospective; never embed unredacted logs, command output, environment
28
- dumps, provider payloads, or transcript content there.
29
-
30
- Consumer wrappers add transcript access, retention, a report schema, a journal provider, and issue
31
- filing policy. They cannot weaken this minimization boundary.
38
+ Use raw evidence only for local verification. Save only bounded structured facts or redacted summaries
39
+ in durable retrospectives; never embed unredacted logs, command output, environment dumps, provider
40
+ payloads, or transcript content there. Exclude secrets. Consumer wrappers own providers, commands,
41
+ report schema, retention, trusted runner mode, and issue routing; they cannot weaken this minimization
42
+ boundary.
@@ -15,17 +15,26 @@ Use when completed retrospectives or journals should become durable follow-up wo
15
15
  1. Enumerate only completed, eligible session records. For repository-scoped work, filter sessions
16
16
  by repository membership and use only entries attributed to that repository. Leave untagged
17
17
  legacy records unclassified. Do not infer their repository. Leave in-progress sessions intact.
18
- 2. Cluster findings by root cause. Prefer a few broad actionable themes over many narrow issues.
18
+ 2. Validate storage type and the shared envelope independently of optional category. Never repair
19
+ unknown legacy types or repository provenance by inference. Quarantine malformed sessions with
20
+ an explicit reason while processing valid unrelated sessions. Deduplicate at-least-once records
21
+ by exact session/source identity and reject conflicting duplicate content. Retain coverage,
22
+ dropped counts, requested versus observed outcomes, and useful resolved findings.
23
+ 3. Cluster findings by root cause. Prefer a few broad actionable themes over many narrow issues.
19
24
  Treat a finding already linked to an open tracker as context, not a duplicate.
20
- 3. Verify each candidate against the current base. Search existing issues and open changes before
21
- drafting. Skip work that is complete, explicitly rejected, or already covered.
22
- 4. Draft self-contained issues with the problem, concrete proposed work, relevant areas, and
25
+ 4. Verify each candidate against the current base. Search existing issues and open changes before
26
+ drafting. Skip work that is complete, explicitly rejected, or already covered. A first-party version
27
+ bump is not proof of resolution: verify the adopted change against the original finding before
28
+ deferring. Capture a new observation in the journal before filing it.
29
+ 5. Draft self-contained issues with the problem, concrete proposed work, relevant areas, and
23
30
  validation. Route every authorized creation through
24
31
  [github-issue](../github-issue/SKILL.md), including its repository gate, label approval, and
25
32
  denied-external tracking behavior.
26
- 5. Archive only records fully processed across every represented repository, under the repository's
33
+ 6. Archive only records fully processed across every represented repository, under the repository's
27
34
  retention rules. A one-repository pass leaves a multi-repository session active until the other
28
- repositories are reviewed. Report created, updated, skipped, and deferred themes with reasons.
35
+ repositories are reviewed. Report reviewed, fixed, duplicate, deferred, quarantined, and
36
+ actionable dispositions with reasons. Keep the top five themes in human prose without dropping
37
+ underlying findings or unresolved records.
29
38
 
30
39
  Use source records only for local verification and leave them in the repository's approved journal
31
40
  or retention system. Public issue bodies contain only the minimum bounded facts or redacted
@@ -18,6 +18,11 @@ Use when investigating a CI failure, repeated workflow noise, or misleading diag
18
18
  failed steps and representative large entries, then remove the temporary artifacts.
19
19
  3. Classify each finding as a real error, misleading output, a downstream cascade, a necessary
20
20
  diagnostic, or a volume-only concern. Identify the first repository-owned root cause.
21
+ Compare the first failing run/job, its exact head revision, and scope with the pre-push verification record.
22
+ Establish whether the relevant local verification was omitted, passed under a different scope
23
+ or environment, genuinely CI-only, or unknown. A shared command name does not prove shared
24
+ project, target, fixtures, or configuration. Do not infer an omission from missing evidence or
25
+ label an external infrastructure failure a harness miss.
21
26
  4. For a persistent-workspace failure, name the producer of sparse state or unsafe ownership before
22
27
  proposing cleanup. Reject an unconditional pre-checkout workspace traversal. A compliant repair
23
28
  is the one in [github-actions-checklist](../github-actions-checklist/SKILL.md).
@@ -27,6 +32,11 @@ Use when investigating a CI failure, repeated workflow noise, or misleading diag
27
32
  6. Add focused regression evidence, run local workflow validation, and compare before and after
28
33
  output where that comparison is meaningful. Report deferred findings. Do not create issues unless
29
34
  authorized.
35
+ 7. Update [the PR description](../pr-description/SKILL.md) before handoff with confirmed omitted
36
+ verification or proven local/CI mismatch. Link the first failed run/job and its exact revision, the actual local
37
+ scope, the reason it missed the failure, and the durable harness correction or authorized
38
+ follow-up. Keep the distinction between omitted and locally passed checks explicit, and retain
39
+ confirmed gap records after CI turns green. Classify CI-only and unknown coverage separately.
30
40
 
31
41
  Consumer wrapper owns: workflow names, log retention, the CI provider command, retry policy, and
32
42
  scheduled automation.