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.
- package/README.md +7 -3
- package/agentic/code/addons/civic-action/README.md +53 -0
- package/agentic/code/addons/civic-action/agents/citation-editor.md +44 -0
- package/agentic/code/addons/civic-action/agents/civic-newsroom-operator.md +57 -0
- package/agentic/code/addons/civic-action/agents/correction-editor.md +46 -0
- package/agentic/code/addons/civic-action/agents/news-caster.md +49 -0
- package/agentic/code/addons/civic-action/commands/civic-action.mjs +45 -0
- package/agentic/code/addons/civic-action/docs/issue-traceability.md +18 -0
- package/agentic/code/addons/civic-action/docs/overview.md +49 -0
- package/agentic/code/addons/civic-action/docs/quickstart.md +45 -0
- package/agentic/code/addons/civic-action/docs/research/aiwg-design-patterns.md +489 -0
- package/agentic/code/addons/civic-action/docs/research/civic-workflow-standards.md +365 -0
- package/agentic/code/addons/civic-action/docs/research/control-source-matrix.md +38 -0
- package/agentic/code/addons/civic-action/docs/research/legal-ethics-guardrails.md +394 -0
- package/agentic/code/addons/civic-action/docs/research/synthesis-and-readiness.md +104 -0
- package/agentic/code/addons/civic-action/examples/invalid/publication-uncited.json +16 -0
- package/agentic/code/addons/civic-action/examples/invalid/source-control-bypass.json +9 -0
- package/agentic/code/addons/civic-action/examples/valid/compliance-gate-result.json +9 -0
- package/agentic/code/addons/civic-action/examples/valid/correction-record.json +15 -0
- package/agentic/code/addons/civic-action/examples/valid/local-resource-index.json +20 -0
- package/agentic/code/addons/civic-action/examples/valid/meeting-reconciliation.json +8 -0
- package/agentic/code/addons/civic-action/examples/valid/public-records-plan.json +20 -0
- package/agentic/code/addons/civic-action/examples/valid/public-technology-review.json +11 -0
- package/agentic/code/addons/civic-action/examples/valid/publication-gate-result.json +9 -0
- package/agentic/code/addons/civic-action/examples/valid/publication-packet.json +16 -0
- package/agentic/code/addons/civic-action/examples/valid/source-registry.json +22 -0
- package/agentic/code/addons/civic-action/examples/valid/vote-ledger.json +28 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-evidence-bound-draft.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-existing-public-source-check.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-intake-and-jurisdiction.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-meeting-newsroom-handoff.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-meeting-reconciliation.yaml +15 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-meeting-source-intake.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-public-records-plan.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-publication-verify.yaml +15 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-record-manual-submission.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-records-jurisdiction-research.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-records-response-ingest.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-research-and-claim-map.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-source-compliance-check.yaml +15 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-transcript-handoff.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/capabilities/civic-vote-ledger-extraction.yaml +14 -0
- package/agentic/code/addons/civic-action/flows/civic-newsroom.yaml +57 -0
- package/agentic/code/addons/civic-action/flows/public-meeting-reconcile.yaml +55 -0
- package/agentic/code/addons/civic-action/flows/public-records.yaml +54 -0
- package/agentic/code/addons/civic-action/lib/gate-engine.mjs +182 -0
- package/agentic/code/addons/civic-action/lib/schema-validator.mjs +46 -0
- package/agentic/code/addons/civic-action/manifest.json +50 -0
- package/agentic/code/addons/civic-action/rules/RULES-INDEX.md +7 -0
- package/agentic/code/addons/civic-action/rules/civic-safety.md +21 -0
- package/agentic/code/addons/civic-action/rules/publication-human-review.md +16 -0
- package/agentic/code/addons/civic-action/rules/source-and-claim-integrity.md +14 -0
- package/agentic/code/addons/civic-action/schemas/compliance-gate-result.schema.json +41 -0
- package/agentic/code/addons/civic-action/schemas/correction-record.schema.json +22 -0
- package/agentic/code/addons/civic-action/schemas/local-resource-index.schema.json +32 -0
- package/agentic/code/addons/civic-action/schemas/meeting-reconciliation.schema.json +15 -0
- package/agentic/code/addons/civic-action/schemas/public-records-plan.schema.json +27 -0
- package/agentic/code/addons/civic-action/schemas/public-technology-review.schema.json +22 -0
- package/agentic/code/addons/civic-action/schemas/publication-gate-result.schema.json +7 -0
- package/agentic/code/addons/civic-action/schemas/publication-packet.schema.json +23 -0
- package/agentic/code/addons/civic-action/schemas/source-registry.schema.json +176 -0
- package/agentic/code/addons/civic-action/schemas/vote-ledger.schema.json +42 -0
- package/agentic/code/addons/civic-action/skills/civic-newsroom-plan/SKILL.md +35 -0
- package/agentic/code/addons/civic-action/skills/civic-publish-gate/SKILL.md +42 -0
- package/agentic/code/addons/civic-action/skills/civic-publish-gate/scripts/publish_gate.mjs +18 -0
- package/agentic/code/addons/civic-action/skills/editorial-correction-review/SKILL.md +34 -0
- package/agentic/code/addons/civic-action/skills/local-resource-index/SKILL.md +36 -0
- package/agentic/code/addons/civic-action/skills/public-meeting-reconcile/SKILL.md +43 -0
- package/agentic/code/addons/civic-action/skills/public-meeting-reconcile/scripts/meeting_reconcile.mjs +18 -0
- package/agentic/code/addons/civic-action/skills/public-records-plan/SKILL.md +39 -0
- package/agentic/code/addons/civic-action/skills/public-technology-review/SKILL.md +36 -0
- package/agentic/code/addons/civic-action/skills/source-compliance-gate/SKILL.md +44 -0
- package/agentic/code/addons/civic-action/skills/source-compliance-gate/scripts/source_compliance_gate.mjs +18 -0
- package/agentic/code/addons/civic-action/templates/correction-record.md +18 -0
- package/agentic/code/addons/civic-action/templates/jurisdiction-review.md +23 -0
- package/agentic/code/addons/civic-action/templates/local-resource-index.md +21 -0
- package/agentic/code/addons/civic-action/templates/minutes-reconciliation.md +14 -0
- package/agentic/code/addons/civic-action/templates/public-meeting-source-packet.md +19 -0
- package/agentic/code/addons/civic-action/templates/public-records-plan.md +26 -0
- package/agentic/code/addons/civic-action/templates/public-technology-review.md +23 -0
- package/agentic/code/addons/civic-action/templates/publication-review.md +25 -0
- package/agentic/code/addons/civic-action/templates/source-registry.yaml +91 -0
- package/agentic/code/addons/civic-action/templates/vote-ledger.yaml +8 -0
- package/agentic/code/plugins/agent-loop/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/agent-persistence/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/agentic-installer/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/aiwg-dev/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/aiwg-evals/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/auto-memory/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/browser-control/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/color-palette/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/compound-memory/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/context-curator/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/daemon/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/doc-intelligence/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/droid-bridge/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/forensics/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/guided-implementation/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/hooks/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/knowledge-base/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/line-memory/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/llm-wiki/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/marketing/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/media-curator/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/nlp-prod/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/ops/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/prose-integration/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/research/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/rlm/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/sdlc/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/security-engineering/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/semantic-memory/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/skill-factory/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/star-prompt/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/testing-quality/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/twelve-factor/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/uat-mcp/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/utils/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/validation-complete/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/verbalized-sampling/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/voice/.claude-plugin/plugin.json +1 -1
- package/agentic/code/plugins/writing/.claude-plugin/plugin.json +1 -1
- package/dist/src/cli/handlers/use.js +40 -7
- package/docs/_manifest.json +161 -1
- package/docs/addons/civic-action/issue-traceability.md +18 -0
- package/docs/addons/civic-action/overview.md +49 -0
- package/docs/addons/civic-action/quickstart.md +45 -0
- package/docs/addons/civic-action/research/aiwg-design-patterns.md +489 -0
- package/docs/addons/civic-action/research/civic-workflow-standards.md +365 -0
- package/docs/addons/civic-action/research/control-source-matrix.md +38 -0
- package/docs/addons/civic-action/research/legal-ethics-guardrails.md +394 -0
- package/docs/addons/civic-action/research/synthesis-and-readiness.md +104 -0
- package/docs/addons/composition-engine/composition-evaluation-research-matrix.md +42 -0
- package/docs/addons/composition-engine/composition-evaluation.md +129 -0
- package/docs/addons/composition-engine/polyrhythmic-reasoning.md +96 -0
- package/docs/addons/composition-engine/runtime-operations.md +115 -0
- package/docs/addons/composition-engine/schema-evolution.md +48 -0
- package/docs/addons/graph-pattern/decision-guide.md +39 -0
- package/docs/addons/voice-framework/output-modes.md +32 -2
- package/docs/docs-sources.json +40 -0
- package/docs/frameworks/ops-complete/extensions-guide.md +37 -0
- package/docs/frameworks/ops-complete/overview.md +12 -0
- package/docs/frameworks/ops-complete/quickstart.md +31 -31
- package/docs/frameworks/sdlc-complete/agent-examples/ai-ml-engineer-examples.md +164 -0
- package/docs/releases/_manifest.json +9 -0
- package/docs/releases/v2026.9.0-announcement.md +117 -0
- package/package.json +2 -1
- package/prebuilt/fortemi-core/framework/aiwg-fortemi-index-v2.json +1 -1
- 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
|
|
639
|
-
install only the capabilities a Claude Code workspace
|
|
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 (
|
|
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.
|