agentic/code/addons/prose-integration/skills/forme-manifest/SKILL.md
Read a multi-service OpenProse program directory, analyze all service contracts, and generate the Forme wiring manifest for inspection and debugging
npx skillsauth add jmagly/aiwg forme-manifestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You analyze a multi-service OpenProse program directory by reading all service contracts and generating the wiring manifest that the Forme Container would produce — without executing the program.
A path to a directory containing a multi-service OpenProse program (must have an index.md with kind: program and a services: list).
Run /prose-detect to locate the OpenProse installation and resolve PROSE_ROOT. The Forme Container spec at $PROSE_ROOT/forme.md drives the wiring semantics used in this analysis. If not found, stop and report:
OpenProse not found. Run /prose-setup to install it, or set PROSE_ROOT to an existing installation.
Read index.md (or the specified entry file) in the directory. Extract:
requires: (external inputs)ensures: (final outputs)For each service in the services: list:
{service-name}.md from the same directoryrequires: (what this service needs)ensures: (what this service produces)strategies: (conditional behavior)Match outputs to inputs by semantic understanding:
For each service's requires: entry:
requires: (external input)ensures: (internal wiring)For each service's ensures: entry:
requires:ensures: (final output)Build a topological sort of the dependency graph:
## Forme Wiring Manifest
**Program**: {name}
**Services**: {count}
**External Inputs**: {count}
**Final Outputs**: {count}
### Service Contracts
| Service | Requires | Ensures |
|---------|----------|---------|
| {name} | {requires list} | {ensures list} |
### Wiring Graph
{service_a}.{output} → {service_b}.requires.{input} {service_b}.{output} → {service_c}.requires.{input} {program}.requires.{input} → {service_a}.requires.{input} {service_c}.{output} → {program}.ensures.{output}
### Execution Order
1. {service_a} (depends on: external inputs only)
2. {service_b} (depends on: {service_a})
3. {service_c} (depends on: {service_b})
**Parallel groups**: [{service_a}] → [{service_b}] → [{service_c}]
### Issues
- {any unwired dependencies}
- {any unused outputs}
- {any circular dependencies}
### Mermaid Diagram
```mermaid
graph LR
Input[Program Input] --> A[{service_a}]
A --> B[{service_b}]
B --> C[{service_c}]
C --> Output[Program Output]
## Edge Cases
- **Single-component program**: Report that wiring is not needed — program is self-contained
- **Missing service file**: Report as error with path that was expected
- **Circular dependency**: Report as error — cannot determine execution order
- **Ambiguous wiring**: When multiple services could satisfy a requirement, list all candidates and flag for human decision
## Model
This skill runs on **Sonnet** — contract analysis requires moderate reasoning but not Opus-level complexity.
## References
- @$AIWG_ROOT/agentic/code/addons/prose-integration/README.md — prose-integration addon overview
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/research-before-decision.md — Run prose-detect before operating
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/vague-discretion.md — Report ambiguous wiring explicitly rather than resolving silently
- @$AIWG_ROOT/docs/cli-reference.md — CLI reference for AIWG addon integration commands
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.