aiwg 2026.8.28 → 2026.9.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 (149) hide show
  1. package/README.md +7 -3
  2. package/agentic/code/addons/civic-action/README.md +53 -0
  3. package/agentic/code/addons/civic-action/agents/citation-editor.md +44 -0
  4. package/agentic/code/addons/civic-action/agents/civic-newsroom-operator.md +57 -0
  5. package/agentic/code/addons/civic-action/agents/correction-editor.md +46 -0
  6. package/agentic/code/addons/civic-action/agents/news-caster.md +49 -0
  7. package/agentic/code/addons/civic-action/commands/civic-action.mjs +45 -0
  8. package/agentic/code/addons/civic-action/docs/issue-traceability.md +18 -0
  9. package/agentic/code/addons/civic-action/docs/overview.md +49 -0
  10. package/agentic/code/addons/civic-action/docs/quickstart.md +45 -0
  11. package/agentic/code/addons/civic-action/docs/research/aiwg-design-patterns.md +489 -0
  12. package/agentic/code/addons/civic-action/docs/research/civic-workflow-standards.md +365 -0
  13. package/agentic/code/addons/civic-action/docs/research/control-source-matrix.md +38 -0
  14. package/agentic/code/addons/civic-action/docs/research/legal-ethics-guardrails.md +394 -0
  15. package/agentic/code/addons/civic-action/docs/research/synthesis-and-readiness.md +104 -0
  16. package/agentic/code/addons/civic-action/examples/invalid/publication-uncited.json +16 -0
  17. package/agentic/code/addons/civic-action/examples/invalid/source-control-bypass.json +9 -0
  18. package/agentic/code/addons/civic-action/examples/valid/compliance-gate-result.json +9 -0
  19. package/agentic/code/addons/civic-action/examples/valid/correction-record.json +15 -0
  20. package/agentic/code/addons/civic-action/examples/valid/local-resource-index.json +20 -0
  21. package/agentic/code/addons/civic-action/examples/valid/meeting-reconciliation.json +8 -0
  22. package/agentic/code/addons/civic-action/examples/valid/public-records-plan.json +20 -0
  23. package/agentic/code/addons/civic-action/examples/valid/public-technology-review.json +11 -0
  24. package/agentic/code/addons/civic-action/examples/valid/publication-gate-result.json +9 -0
  25. package/agentic/code/addons/civic-action/examples/valid/publication-packet.json +16 -0
  26. package/agentic/code/addons/civic-action/examples/valid/source-registry.json +22 -0
  27. package/agentic/code/addons/civic-action/examples/valid/vote-ledger.json +28 -0
  28. package/agentic/code/addons/civic-action/flows/capabilities/civic-evidence-bound-draft.yaml +14 -0
  29. package/agentic/code/addons/civic-action/flows/capabilities/civic-existing-public-source-check.yaml +14 -0
  30. package/agentic/code/addons/civic-action/flows/capabilities/civic-intake-and-jurisdiction.yaml +14 -0
  31. package/agentic/code/addons/civic-action/flows/capabilities/civic-meeting-newsroom-handoff.yaml +14 -0
  32. package/agentic/code/addons/civic-action/flows/capabilities/civic-meeting-reconciliation.yaml +15 -0
  33. package/agentic/code/addons/civic-action/flows/capabilities/civic-meeting-source-intake.yaml +14 -0
  34. package/agentic/code/addons/civic-action/flows/capabilities/civic-public-records-plan.yaml +14 -0
  35. package/agentic/code/addons/civic-action/flows/capabilities/civic-publication-verify.yaml +15 -0
  36. package/agentic/code/addons/civic-action/flows/capabilities/civic-record-manual-submission.yaml +14 -0
  37. package/agentic/code/addons/civic-action/flows/capabilities/civic-records-jurisdiction-research.yaml +14 -0
  38. package/agentic/code/addons/civic-action/flows/capabilities/civic-records-response-ingest.yaml +14 -0
  39. package/agentic/code/addons/civic-action/flows/capabilities/civic-research-and-claim-map.yaml +14 -0
  40. package/agentic/code/addons/civic-action/flows/capabilities/civic-source-compliance-check.yaml +15 -0
  41. package/agentic/code/addons/civic-action/flows/capabilities/civic-transcript-handoff.yaml +14 -0
  42. package/agentic/code/addons/civic-action/flows/capabilities/civic-vote-ledger-extraction.yaml +14 -0
  43. package/agentic/code/addons/civic-action/flows/civic-newsroom.yaml +57 -0
  44. package/agentic/code/addons/civic-action/flows/public-meeting-reconcile.yaml +55 -0
  45. package/agentic/code/addons/civic-action/flows/public-records.yaml +54 -0
  46. package/agentic/code/addons/civic-action/lib/gate-engine.mjs +182 -0
  47. package/agentic/code/addons/civic-action/lib/schema-validator.mjs +46 -0
  48. package/agentic/code/addons/civic-action/manifest.json +50 -0
  49. package/agentic/code/addons/civic-action/rules/RULES-INDEX.md +7 -0
  50. package/agentic/code/addons/civic-action/rules/civic-safety.md +21 -0
  51. package/agentic/code/addons/civic-action/rules/publication-human-review.md +16 -0
  52. package/agentic/code/addons/civic-action/rules/source-and-claim-integrity.md +14 -0
  53. package/agentic/code/addons/civic-action/schemas/compliance-gate-result.schema.json +41 -0
  54. package/agentic/code/addons/civic-action/schemas/correction-record.schema.json +22 -0
  55. package/agentic/code/addons/civic-action/schemas/local-resource-index.schema.json +32 -0
  56. package/agentic/code/addons/civic-action/schemas/meeting-reconciliation.schema.json +15 -0
  57. package/agentic/code/addons/civic-action/schemas/public-records-plan.schema.json +27 -0
  58. package/agentic/code/addons/civic-action/schemas/public-technology-review.schema.json +22 -0
  59. package/agentic/code/addons/civic-action/schemas/publication-gate-result.schema.json +7 -0
  60. package/agentic/code/addons/civic-action/schemas/publication-packet.schema.json +23 -0
  61. package/agentic/code/addons/civic-action/schemas/source-registry.schema.json +176 -0
  62. package/agentic/code/addons/civic-action/schemas/vote-ledger.schema.json +42 -0
  63. package/agentic/code/addons/civic-action/skills/civic-newsroom-plan/SKILL.md +35 -0
  64. package/agentic/code/addons/civic-action/skills/civic-publish-gate/SKILL.md +42 -0
  65. package/agentic/code/addons/civic-action/skills/civic-publish-gate/scripts/publish_gate.mjs +18 -0
  66. package/agentic/code/addons/civic-action/skills/editorial-correction-review/SKILL.md +34 -0
  67. package/agentic/code/addons/civic-action/skills/local-resource-index/SKILL.md +36 -0
  68. package/agentic/code/addons/civic-action/skills/public-meeting-reconcile/SKILL.md +43 -0
  69. package/agentic/code/addons/civic-action/skills/public-meeting-reconcile/scripts/meeting_reconcile.mjs +18 -0
  70. package/agentic/code/addons/civic-action/skills/public-records-plan/SKILL.md +39 -0
  71. package/agentic/code/addons/civic-action/skills/public-technology-review/SKILL.md +36 -0
  72. package/agentic/code/addons/civic-action/skills/source-compliance-gate/SKILL.md +44 -0
  73. package/agentic/code/addons/civic-action/skills/source-compliance-gate/scripts/source_compliance_gate.mjs +18 -0
  74. package/agentic/code/addons/civic-action/templates/correction-record.md +18 -0
  75. package/agentic/code/addons/civic-action/templates/jurisdiction-review.md +23 -0
  76. package/agentic/code/addons/civic-action/templates/local-resource-index.md +21 -0
  77. package/agentic/code/addons/civic-action/templates/minutes-reconciliation.md +14 -0
  78. package/agentic/code/addons/civic-action/templates/public-meeting-source-packet.md +19 -0
  79. package/agentic/code/addons/civic-action/templates/public-records-plan.md +26 -0
  80. package/agentic/code/addons/civic-action/templates/public-technology-review.md +23 -0
  81. package/agentic/code/addons/civic-action/templates/publication-review.md +25 -0
  82. package/agentic/code/addons/civic-action/templates/source-registry.yaml +91 -0
  83. package/agentic/code/addons/civic-action/templates/vote-ledger.yaml +8 -0
  84. package/agentic/code/plugins/agent-loop/.claude-plugin/plugin.json +1 -1
  85. package/agentic/code/plugins/agent-persistence/.claude-plugin/plugin.json +1 -1
  86. package/agentic/code/plugins/agentic-installer/.claude-plugin/plugin.json +1 -1
  87. package/agentic/code/plugins/aiwg-dev/.claude-plugin/plugin.json +1 -1
  88. package/agentic/code/plugins/aiwg-evals/.claude-plugin/plugin.json +1 -1
  89. package/agentic/code/plugins/auto-memory/.claude-plugin/plugin.json +1 -1
  90. package/agentic/code/plugins/browser-control/.claude-plugin/plugin.json +1 -1
  91. package/agentic/code/plugins/color-palette/.claude-plugin/plugin.json +1 -1
  92. package/agentic/code/plugins/compound-memory/.claude-plugin/plugin.json +1 -1
  93. package/agentic/code/plugins/context-curator/.claude-plugin/plugin.json +1 -1
  94. package/agentic/code/plugins/daemon/.claude-plugin/plugin.json +1 -1
  95. package/agentic/code/plugins/doc-intelligence/.claude-plugin/plugin.json +1 -1
  96. package/agentic/code/plugins/droid-bridge/.claude-plugin/plugin.json +1 -1
  97. package/agentic/code/plugins/forensics/.claude-plugin/plugin.json +1 -1
  98. package/agentic/code/plugins/guided-implementation/.claude-plugin/plugin.json +1 -1
  99. package/agentic/code/plugins/hooks/.claude-plugin/plugin.json +1 -1
  100. package/agentic/code/plugins/knowledge-base/.claude-plugin/plugin.json +1 -1
  101. package/agentic/code/plugins/line-memory/.claude-plugin/plugin.json +1 -1
  102. package/agentic/code/plugins/llm-wiki/.claude-plugin/plugin.json +1 -1
  103. package/agentic/code/plugins/marketing/.claude-plugin/plugin.json +1 -1
  104. package/agentic/code/plugins/media-curator/.claude-plugin/plugin.json +1 -1
  105. package/agentic/code/plugins/nlp-prod/.claude-plugin/plugin.json +1 -1
  106. package/agentic/code/plugins/ops/.claude-plugin/plugin.json +1 -1
  107. package/agentic/code/plugins/prose-integration/.claude-plugin/plugin.json +1 -1
  108. package/agentic/code/plugins/research/.claude-plugin/plugin.json +1 -1
  109. package/agentic/code/plugins/rlm/.claude-plugin/plugin.json +1 -1
  110. package/agentic/code/plugins/sdlc/.claude-plugin/plugin.json +1 -1
  111. package/agentic/code/plugins/security-engineering/.claude-plugin/plugin.json +1 -1
  112. package/agentic/code/plugins/semantic-memory/.claude-plugin/plugin.json +1 -1
  113. package/agentic/code/plugins/skill-factory/.claude-plugin/plugin.json +1 -1
  114. package/agentic/code/plugins/star-prompt/.claude-plugin/plugin.json +1 -1
  115. package/agentic/code/plugins/testing-quality/.claude-plugin/plugin.json +1 -1
  116. package/agentic/code/plugins/twelve-factor/.claude-plugin/plugin.json +1 -1
  117. package/agentic/code/plugins/uat-mcp/.claude-plugin/plugin.json +1 -1
  118. package/agentic/code/plugins/utils/.claude-plugin/plugin.json +1 -1
  119. package/agentic/code/plugins/validation-complete/.claude-plugin/plugin.json +1 -1
  120. package/agentic/code/plugins/verbalized-sampling/.claude-plugin/plugin.json +1 -1
  121. package/agentic/code/plugins/voice/.claude-plugin/plugin.json +1 -1
  122. package/agentic/code/plugins/writing/.claude-plugin/plugin.json +1 -1
  123. package/dist/src/cli/handlers/use.js +40 -7
  124. package/docs/_manifest.json +161 -1
  125. package/docs/addons/civic-action/issue-traceability.md +18 -0
  126. package/docs/addons/civic-action/overview.md +49 -0
  127. package/docs/addons/civic-action/quickstart.md +45 -0
  128. package/docs/addons/civic-action/research/aiwg-design-patterns.md +489 -0
  129. package/docs/addons/civic-action/research/civic-workflow-standards.md +365 -0
  130. package/docs/addons/civic-action/research/control-source-matrix.md +38 -0
  131. package/docs/addons/civic-action/research/legal-ethics-guardrails.md +394 -0
  132. package/docs/addons/civic-action/research/synthesis-and-readiness.md +104 -0
  133. package/docs/addons/composition-engine/composition-evaluation-research-matrix.md +42 -0
  134. package/docs/addons/composition-engine/composition-evaluation.md +129 -0
  135. package/docs/addons/composition-engine/polyrhythmic-reasoning.md +96 -0
  136. package/docs/addons/composition-engine/runtime-operations.md +115 -0
  137. package/docs/addons/composition-engine/schema-evolution.md +48 -0
  138. package/docs/addons/graph-pattern/decision-guide.md +39 -0
  139. package/docs/addons/voice-framework/output-modes.md +32 -2
  140. package/docs/docs-sources.json +40 -0
  141. package/docs/frameworks/ops-complete/extensions-guide.md +37 -0
  142. package/docs/frameworks/ops-complete/overview.md +12 -0
  143. package/docs/frameworks/ops-complete/quickstart.md +31 -31
  144. package/docs/frameworks/sdlc-complete/agent-examples/ai-ml-engineer-examples.md +164 -0
  145. package/docs/releases/_manifest.json +9 -0
  146. package/docs/releases/v2026.9.0-announcement.md +117 -0
  147. package/package.json +2 -1
  148. package/prebuilt/fortemi-core/framework/aiwg-fortemi-index-v2.json +1 -1
  149. package/prebuilt/fortemi-core/framework/manifest.json +2 -2
package/README.md CHANGED
@@ -581,6 +581,7 @@ aiwg use forensics # Digital forensics & incident response (13 agents, 1
581
581
  aiwg use marketing # Marketing operations (37 agents, 87+ templates)
582
582
  aiwg use media-curator # Media archive management (6 agents, 9 commands)
583
583
  aiwg use research # Research workflow automation (8 agents, 8-stage pipeline)
584
+ aiwg use civic-action # Cited civic review and publication-preparation kit
584
585
  aiwg use rlm # RLM addon (recursive context decomposition)
585
586
  aiwg use all # Everything
586
587
 
@@ -635,8 +636,10 @@ The bundle is **byte-identical** in shape to its upstream form, so
635
636
  /plugin install compound-memory@aiwg
636
637
  ```
637
638
 
638
- The marketplace contains all 40 packaged frameworks and addons, so you can
639
- install only the capabilities a Claude Code workspace needs.
639
+ The marketplace contains 40 independently packaged framework and addon
640
+ plugins, so you can install only the capabilities a Claude Code workspace
641
+ needs. Source-distributed opt-in addons such as Civic Action deploy with
642
+ `aiwg use civic-action` and do not imply a marketplace wrapper.
640
643
 
641
644
  ### Multi-Platform Deployment
642
645
 
@@ -685,10 +688,11 @@ If you ship a product that bundles AIWG and want to be listed here, open an issu
685
688
  | **[Ops Complete](agentic/code/frameworks/ops-complete/)** | 12 | 3 | Operational infrastructure — incident management, runbooks, troubleshooting workflows |
686
689
  | **[Security Engineering](agentic/code/frameworks/security-engineering/)** | 2 | 5 | Applied security beyond STRIDE/OWASP — cryptographic primitive selection, chain-of-trust integrity, authentication-factor architecture, degraded-mode design, runtime secret hygiene, supply-chain trust, physical-access threats. Pattern-based, product-agnostic |
687
690
 
688
- ### Addons (31)
691
+ ### Addons (32)
689
692
 
690
693
  | Addon | What It Does |
691
694
  |-------|--------------|
695
+ | **[Civic Action](agentic/code/addons/civic-action/)** | Cited, opt-in decision support for source review, records planning, meeting reconciliation, public-technology research, local-resource profiles, corrections, and publication preparation |
692
696
  | **[RLM](agentic/code/addons/rlm/)** | Recursive context decomposition — process 10M+ tokens via sub-agent delegation with parallel fan-out |
693
697
  | **[Writing Quality](agentic/code/addons/writing-quality/)** | Content validation, AI pattern detection, authentic voice enforcement |
694
698
  | **[Testing Quality](agentic/code/addons/testing-quality/)** | TDD enforcement, mutation testing, flaky test detection and repair |
@@ -0,0 +1,53 @@
1
+ # Civic Action
2
+
3
+ Civic Action is an opt-in, vendor-neutral AIWG addon for evidence-bound civic
4
+ research, public-meeting reconciliation, public-records planning, public
5
+ technology review, local-resource indexing, corrections, and publication QA.
6
+
7
+ It prepares structured artifacts and local findings. It never autonomously
8
+ submits records requests, contacts people, identifies speakers, publishes
9
+ content, or makes legal conclusions. Those transitions require named human
10
+ review. A machine pass covers only the declared, schema-valid fields inspected
11
+ by that command; it is not factual verification, compliance, or authorization.
12
+
13
+ ## Install and discover
14
+
15
+ ```bash
16
+ aiwg use civic-action
17
+ aiwg discover "plan a public records request"
18
+ aiwg discover "reconcile a public meeting transcript with minutes"
19
+ aiwg discover "publish cited local public information"
20
+ ```
21
+
22
+ ## Executable gates
23
+
24
+ ```bash
25
+ aiwg civic source-gate source-registry.json
26
+ aiwg civic meeting-gate vote-ledger.json reconciliation.json
27
+ aiwg civic publish-gate publication-packet.json
28
+ ```
29
+
30
+ All commands write a JSON report to stdout. Exit `0` means no blocking
31
+ finding, exit `1` means one or more `block` findings, and exit `2` means invalid
32
+ input or usage. Warnings remain in the report for human disposition.
33
+
34
+ ## Capability map
35
+
36
+ | Need | Artifact |
37
+ |---|---|
38
+ | Public-source acquisition and reuse | `source-compliance-gate`, source registry schema/template |
39
+ | Civic newsroom planning | `civic-newsroom-plan`, newsroom FlowPlaybook |
40
+ | Meeting transcript, vote, and minutes | `public-meeting-reconcile`, vote/reconciliation schemas and flow |
41
+ | Public-records preparation | `public-records-plan`, planning schema/template and manual-submission gate |
42
+ | Public-technology evidence review | `public-technology-review`, neutral evidence/risk contract |
43
+ | Newsroom personas and corrections | four bounded agents plus `editorial-correction-review` |
44
+ | Publication QA | `civic-publish-gate`, gate-result schema and human publication gate |
45
+ | Local public resources | `local-resource-index`, CAP/GTFS/HSDS profile contract |
46
+
47
+ Optional frameworks add research, transcription, knowledge-base, editorial,
48
+ operations, and security capabilities. If absent, skills emit an explicit
49
+ `blocked-dependency-missing` or `manual-review-required` state; they do not
50
+ claim those checks ran.
51
+
52
+ See `docs/overview.md`, `docs/quickstart.md`, and the cited research reports in
53
+ `docs/research/` for the design basis and limitations.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: citation-editor
3
+ description: Validate civic claim-to-source alignment, provenance, freshness, and selectors without inventing evidence or treating citation presence as support.
4
+ model: sonnet
5
+ model-role: reasoning
6
+ model-tier: standard
7
+ tools: Read, Grep
8
+ ---
9
+
10
+ # Citation Editor
11
+
12
+ ## Inputs
13
+
14
+ - Required: versioned draft, material-claim map, source/retrieval registry, and selectors.
15
+ - Optional: freshness policy, transcript sidecars, contrary evidence, and prior correction records.
16
+
17
+ ## Outputs
18
+
19
+ - Per-claim gate results, evidence pointers, remediation, uncertainty, and overall citation status.
20
+
21
+ ## Responsibilities
22
+
23
+ - Check that each material claim is entailed by its cited source version.
24
+ - Verify source/retrieval IDs, hashes, page/section/cue/record selectors,
25
+ quoted text, freshness state, and claim epistemic status.
26
+ - Reuse research-complete citation/provenance checks when installed.
27
+
28
+ ## Hard rules
29
+
30
+ Never invent or repair evidence by changing the claim silently. Do not equate
31
+ official provenance with truth, recency with correctness, or a URL with
32
+ claim-level support. Missing dependencies or sources block the claimed check.
33
+
34
+ ## Output contract
35
+
36
+ Return per-claim `pass|warn|block` results, evidence pointers, exact remediation,
37
+ and an overall status. Preserve disputes for the human editor.
38
+
39
+ ## Recovery and scope
40
+
41
+ Inspect only sources relevant to each claim. Independent claims may be checked
42
+ in parallel. If evidence is missing, ambiguous, stale, or unreadable, record the
43
+ failure and escalate to the editor; never retry by inventing or broadening the
44
+ source set without authorization.
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: civic-newsroom-operator
3
+ description: Orchestrate evidence-bound civic research and review packets without autonomously publishing, submitting requests, recording, or contacting people.
4
+ model: sonnet
5
+ model-role: reasoning
6
+ model-tier: standard
7
+ tools: Read, Grep, Task
8
+ ---
9
+
10
+ # Civic Newsroom Operator
11
+
12
+ ## Inputs
13
+
14
+ - Required: civic objective, jurisdiction context, permitted scope, and available source packet.
15
+ - Optional: dependency inventory, prior gate results, correction history, and reviewer roster.
16
+
17
+ ## Outputs
18
+
19
+ - A bounded workflow status, artifact/evidence map, gate results, unresolved uncertainty, and named human decisions still required.
20
+
21
+ ## Responsibilities
22
+
23
+ - Resolve the requested workflow and assemble versioned source, jurisdiction,
24
+ claim, privacy, correction, and approval artifacts.
25
+ - Verify source and jurisdiction assumptions before delegating or advancing.
26
+ - Delegate only bounded research, citation, transcription, or review tasks.
27
+ - Preserve dissent and blocked states when synthesizing specialist results.
28
+ - Stop at every external-action and legal/editorial human gate.
29
+
30
+ ## Hard rules
31
+
32
+ - Never publish, record, submit a request, contact a person, identify a speaker,
33
+ calculate an unreviewed legal deadline, or override a blocking gate.
34
+ - Never turn an official record's allegation into a verified fact.
35
+ - Never create a personal target dossier or operationalize harassment, doxxing,
36
+ intimidation, access-control bypass, or coordinated contact.
37
+ - Missing optional capabilities produce `blocked-dependency-missing` or
38
+ `manual-review-required`, never fabricated results.
39
+
40
+ ## Output contract
41
+
42
+ Return a workflow status, artifact paths and hashes, unresolved questions,
43
+ machine-gate results, named human decisions still required, and safe next steps.
44
+ Do not expose private chain-of-thought; report evidence and decision rationale.
45
+
46
+ ## Safety gates
47
+
48
+ Apply `rules/civic-safety.md`, `rules/source-and-claim-integrity.md`, and
49
+ `rules/publication-human-review.md`. A `block` is terminal for the proposed
50
+ action. Non-overridable blocked classes have no routine exception path.
51
+
52
+ ## Recovery and scope
53
+
54
+ Focus only on evidence relevant to the stated civic question. Independent
55
+ source/citation reviews may run in parallel, but legal/editorial decisions may
56
+ not. On missing, ambiguous, or failed evidence, preserve partial results,
57
+ escalate to the human gate, and do not retry external action.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: correction-editor
3
+ description: Review contested civic claims and prepare append-only correction records with retained provenance.
4
+ model: sonnet
5
+ model-role: reasoning
6
+ model-tier: standard
7
+ tools: Read, Grep
8
+ ---
9
+
10
+ # Correction Editor
11
+
12
+ ## Inputs
13
+
14
+ - Required: challenged artifact/hash, claim, complaint, original sources, and current publication state.
15
+ - Optional: contrary evidence, response, retention holds, safety report, and downstream inventory.
16
+
17
+ ## Outputs
18
+
19
+ - Schema-valid correction record, propagation checklist, uncertainty, and pending named-human decision.
20
+
21
+ ## Responsibilities
22
+
23
+ - Compare the challenged claim, exact published version, source record,
24
+ contrary evidence, response, and correction policy.
25
+ - Prepare a new version and visible correction note; never silently overwrite.
26
+ - Track owned caches, feeds, indexes, exports, and syndication requests as
27
+ requested or observed outcomes, not guaranteed global erasure.
28
+
29
+ ## Hard rules
30
+
31
+ Do not destroy evidence, reveal protected complainant data, retaliate, or approve
32
+ your own correction. Preserve lawful holds and route privacy/safety urgency to a
33
+ human. `withheld` and `canceled` items cannot re-enter publication automatically.
34
+
35
+ ## Output contract
36
+
37
+ Return a correction record conforming to `correction-record.schema.json`, a
38
+ downstream propagation checklist, unresolved retention/privacy questions, and a
39
+ pending named-human decision.
40
+
41
+ ## Recovery and scope
42
+
43
+ Focus on outputs derived from the challenged claim. Downstream inventories may
44
+ be checked in parallel, but the correction decision is sequential and human.
45
+ If evidence, retention authority, or safety impact is ambiguous, freeze silent
46
+ changes, preserve the error state, and escalate without destructive retry.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: news-caster
3
+ description: Draft accessible civic explainers from approved evidence with claim-level citations and visible uncertainty.
4
+ model: haiku
5
+ model-role: efficiency
6
+ model-tier: economy
7
+ tools: Read, Grep
8
+ ---
9
+
10
+ # News Caster
11
+
12
+ ## Inputs
13
+
14
+ - Required: approved evidence packet, claim map, audience, scope, and style/accessibility constraints.
15
+ - Optional: reviewed meeting packet, response record, correction history, and dissent notes.
16
+
17
+ ## Outputs
18
+
19
+ - Draft, claim-to-source table, uncertainty/dissent section, accessibility checklist, and pending publication decision.
20
+
21
+ ## Responsibilities
22
+
23
+ - Draft from supplied, versioned evidence only.
24
+ - Attach a resolvable source selector to every material fact, number, date,
25
+ quote, vote, allegation, and consequential claim.
26
+ - Distinguish `official_record`, `reported_allegation`, `verified_fact`,
27
+ `analysis`, `opinion`, and `unknown_or_disputed`.
28
+ - Preserve uncertainty, contrary evidence, requests for response, accessibility
29
+ needs, and correction contact information.
30
+
31
+ ## Hard rules
32
+
33
+ Do not browse for hidden personal information, infer speaker identity, invent
34
+ citations, silently resolve conflicts, or claim publication approval. Treat
35
+ machine transcripts and ledgers as drafts until human verified. Use
36
+ institutional channels and public acts, not personal targeting.
37
+
38
+ ## Output contract
39
+
40
+ Return a draft, claim-to-source table, uncertainty/dissent section,
41
+ accessibility checklist, and `pending` human-publication decision. If the packet
42
+ is incomplete, return `manual-review-required` with the missing evidence.
43
+
44
+ ## Recovery and scope
45
+
46
+ Focus only on relevant approved evidence. Independent sections may be drafted in
47
+ parallel only when their claim maps do not overlap. If a source, selector, or
48
+ status is ambiguous, stop that claim, report the error, and escalate rather than
49
+ guess or retry with unrelated context.
@@ -0,0 +1,45 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { evaluateMeeting, evaluatePublication, evaluateSourceRegistry, exitCodeFor } from '../lib/gate-engine.mjs';
4
+ import { assertCivicSchema, CivicSchemaValidationError } from '../lib/schema-validator.mjs';
5
+
6
+ async function readJson(cwd, file) {
7
+ return JSON.parse(await fs.readFile(path.resolve(cwd, file), 'utf8'));
8
+ }
9
+
10
+ export default async function civicAction(args, context = {}) {
11
+ const cwd = context.cwd ?? process.cwd();
12
+ const subcommand = context.subcommand ?? args.shift();
13
+ if (args.includes('--help') || args.includes('-h')) return { exitCode: 0, message: 'Usage: aiwg civic source-gate <registry.json> | meeting-gate <ledger.json> <reconciliation.json> | publish-gate <packet.json>' };
14
+ try {
15
+ let result;
16
+ if (subcommand === 'source-gate') {
17
+ if (!args[0]) throw new Error('source-gate requires <registry.json>');
18
+ const registry = await readJson(cwd, args[0]);
19
+ assertCivicSchema('source-registry', registry);
20
+ result = evaluateSourceRegistry(registry);
21
+ } else if (subcommand === 'meeting-gate') {
22
+ if (!args[0] || !args[1]) throw new Error('meeting-gate requires <ledger.json> <reconciliation.json>');
23
+ const ledger = await readJson(cwd, args[0]);
24
+ const reconciliation = await readJson(cwd, args[1]);
25
+ assertCivicSchema('vote-ledger', ledger);
26
+ assertCivicSchema('meeting-reconciliation', reconciliation);
27
+ result = evaluateMeeting(ledger, reconciliation);
28
+ } else if (subcommand === 'publish-gate') {
29
+ if (!args[0]) throw new Error('publish-gate requires <packet.json>');
30
+ const packet = await readJson(cwd, args[0]);
31
+ assertCivicSchema('publication-packet', packet);
32
+ result = evaluatePublication(packet);
33
+ } else throw new Error(`Unknown civic gate: ${subcommand ?? '(missing)'}`);
34
+ assertCivicSchema('gate-result', result);
35
+ return { exitCode: exitCodeFor(result), message: JSON.stringify(result, null, 2) };
36
+ } catch (error) {
37
+ const payload = {
38
+ schema: 'aiwg.civic.gate-error.v1',
39
+ code: error instanceof CivicSchemaValidationError ? error.code : 'CIVIC_INPUT_INVALID',
40
+ error: error instanceof Error ? error.message : String(error),
41
+ ...(error instanceof CivicSchemaValidationError ? { validation_errors: error.validationErrors } : {}),
42
+ };
43
+ return { exitCode: 2, message: JSON.stringify(payload, null, 2) };
44
+ }
45
+ }
@@ -0,0 +1,18 @@
1
+ # Civic-action issue traceability
2
+
3
+ | Issue | Implemented proof | Verification |
4
+ |---|---|---|
5
+ | #2213 legal/ethics guardrails | `rules/civic-safety.md`, `rules/publication-human-review.md`, jurisdiction template, cited legal brief, non-overridable source/publish gate findings | Source bypass and missing-review negative tests |
6
+ | #2214 public-source compliance | Source registry and gate-result schemas/templates, explicit owner/method/cadence/decision/citation/fallback/empty-result fields, executable `source-compliance-gate` | Valid, hostile, public-record-alternative, empty-result, and last-good-copy tests; stable JSON/exit codes |
7
+ | #2215 civic newsroom bundle | Non-core addon manifest, README, composition/degraded-mode map, `civic-newsroom-plan`, newsroom flow | Package and manifest discovery validation |
8
+ | #2216 meeting transcript/votes | Vote-ledger and reconciliation schemas/templates with mover/seconder/timestamp/citation fields, executable meeting gate, meeting flow with two human gates | Conflict, inferred-vote, source-cue, required-field, exact-ID, and approval tests |
9
+ | #2217 public records | Draft-only skill, full planning/tracker/response-ingestion schema and template, records flow, jurisdiction/manual-submission/privacy boundaries | Automatic-submission, tracking-field, schema-fixture, and Flow human-submission tests |
10
+ | #2218 procurement | All requested source-class inventory, neutral evidence/risk/handoff schema, review template/skill, protected/public release states, no award recommendation | Inventory completeness and `award_recommendation: null` negative tests |
11
+ | #2219 personas | Bounded operator, news-caster, citation-editor, and correction-editor agents; explicit skill/template allocation for resource/records/SEO-GEO work | Strict agent linter, model-policy, and placeholder/orphan tests |
12
+ | #2220 publishing gates | Publication packet/gate schemas with section count/freshness, structured-data, link, correction, live-page, sitemap/reindex/cache and last-good-copy controls | Positive and multi-failure fixtures; JSON/exit-code tests |
13
+ | #2221 local resources | CAP/GTFS/HSDS conditional field sets, citations, structured-data, template/skill, freshness/public-scope/correction/takedown and publish-gate handoff | Per-vertical required-field negative and research-source assertions |
14
+ | #2222 packaging | Canonical opt-in addon, CLI namespace, docs, pilot/marketplace decision, optional dependency/degraded-mode contract; plugin deferred to thin generated wrapper | Dry-run and isolated provider deployment with live CLI execution |
15
+
16
+ All machine passes remain evidence for review, not authorization for external
17
+ action. The full readiness and packaging decision is in
18
+ `docs/research/synthesis-and-readiness.md`.
@@ -0,0 +1,49 @@
1
+ # Civic Action overview
2
+
3
+ Civic Action packages research-first, evidence-preserving workflows for public
4
+ sources, meetings, records requests, public-technology procurement, local
5
+ resource indexes, corrections, and publication review. It is an opt-in addon,
6
+ not a jurisdiction database, law practice, autonomous newsroom, recorder, CMS,
7
+ or outreach system.
8
+
9
+ ## Safety and evidence model
10
+
11
+ The executable source, meeting, and publication commands validate their input
12
+ schemas and block selected declared conditions, including access-control bypass,
13
+ unresolved source authorization/rights, conflicted or unverified vote evidence,
14
+ uncited declared material claims, incomplete named privacy/accessibility review,
15
+ and missing named exact-hash publication approval. Broader jurisdiction,
16
+ consent, private/public status, anti-targeting, retention, and independent-review
17
+ requirements are mandatory human workflow rules; the commands do not infer
18
+ those facts from content.
19
+
20
+ Source identity and retrieval versions are distinct. Contracts provide fields
21
+ for epistemic status, source/retrieval identity, selectors, contrary evidence,
22
+ and review history. Correction artifacts plan linked new versions rather than
23
+ silent replacements; the addon does not enforce an external storage history.
24
+
25
+ These choices follow [W3C PROV-O](https://www.w3.org/TR/prov-o/),
26
+ [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html), the
27
+ [NIST AI RMF](https://www.nist.gov/itl/ai-risk-management-framework), the
28
+ [NIST Privacy Framework](https://www.nist.gov/privacy-framework), and the
29
+ [SPJ Code of Ethics](https://www.spj.org/spj-code-of-ethics/). The cited legal
30
+ and standards research in `docs/research/` states scope and dissent explicitly.
31
+ The `control-source-matrix.md` file maps each skill to its sources, tests, and
32
+ executable-versus-declarative boundary.
33
+
34
+ ## Human authority
35
+
36
+ Machine gates return `pass|warn|block`; a pass only means no blocking condition
37
+ was found among the declared fields inspected by that command. It does not
38
+ authorize action, determine legality, or independently verify facts. A named
39
+ human reviews the exact artifact and underlying evidence before recording,
40
+ submission, outreach, identity assignment, legal assertions, publication, or
41
+ correction release. External action remains outside the executable gates.
42
+
43
+ ## Composition
44
+
45
+ `aiwg-utils` supplies the Flow contract. Optional research-complete,
46
+ media-curator, knowledge-base, media-marketing-kit, ops-complete, and
47
+ security-engineering components add specialized capabilities. Their absence is
48
+ reported honestly and never replaced with invented transcripts, citations,
49
+ legal conclusions, accessibility conformance, or deployment evidence.
@@ -0,0 +1,45 @@
1
+ # Civic Action quickstart
2
+
3
+ > **First time using AIWG?** Begin with [Install, Connect, and Verify](https://docs.aiwg.io/pages/getting-started--install-connect-verify.html). This guide assumes AIWG is already installed and connected to the target project.
4
+
5
+ Install the opt-in addon:
6
+
7
+ ```bash
8
+ aiwg use civic-action
9
+ ```
10
+
11
+ Start with a natural-language ask:
12
+
13
+ ```text
14
+ Plan a public records request for human review.
15
+ Reconcile this public meeting transcript with the approved minutes.
16
+ Review this public technology procurement using source-linked evidence.
17
+ Index local emergency, transit, and human-service resources with citations.
18
+ Run civic publication quality gates on this evidence packet.
19
+ ```
20
+
21
+ For source acquisition, copy `templates/source-registry.yaml`, replace every
22
+ unknown state with observed evidence, obtain named review, then run:
23
+
24
+ ```bash
25
+ aiwg civic source-gate source-registry.json
26
+ ```
27
+
28
+ For meetings, preserve separate source media, transcript, ledger, and minutes
29
+ artifacts. Do not replace `SPEAKER_XX` with a name without evidence and human
30
+ confirmation:
31
+
32
+ ```bash
33
+ aiwg civic meeting-gate vote-ledger.json reconciliation.json
34
+ ```
35
+
36
+ For publication, supply claim-level citations, privacy and accessibility
37
+ reviews, correction state, upstream gates, and exact-hash human approval:
38
+
39
+ ```bash
40
+ aiwg civic publish-gate publication-packet.json
41
+ ```
42
+
43
+ Exit `0` means no machine block, not permission to publish. Exit `1` is a
44
+ blocking result. Exit `2` is invalid input/usage. Human publication remains a
45
+ separate external action.