Commit Graph

3 Commits

Author SHA1 Message Date
ruvnet e332689b8c fix(release): harden hooks, statusline, security, and plugin MCP integration 2026-07-16 23:06:29 -04:00
ruv 6198abfab7 fix(plugins): reconcile stale smoke contract assertions across 23 plugins
full-system-test surfaced 23/32 plugin smoke contracts failing on a
single drifted assertion: the smoke gate greps ADR-0001 for
`status: Proposed`, but those ADRs were long since promoted to
`Accepted` without updating the gate. Flip the assertion (label, grep,
message) Proposed -> Accepted only where the ADR is genuinely Accepted.

ruflo-core additionally had a stale version assertion (0.2.0 -> 0.2.2).

Left untouched: ruflo-adr, ruflo-browser, ruflo-intelligence — their
ADR-0001 is genuinely Proposed, so their smokes correctly assert it.
No plugin source or ADR changed — only the drifted test assertions.

All 32 plugin smoke contracts now pass; full-system-test is 4/4 green.

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-29 15:00:34 -04:00
Reuven b0168e4a55 feat(ruflo-federation): adopt plugin contract — 3-gate alignment + ADR-097 budget integration + smoke (ADR-0001)
Federation already at v0.2.0 with comprehensive ADR-097 budget circuit
breaker docs. The contract pieces were missing.

The plugin's "PII Pipeline" feature is a richer specialization of the
canonical 3-gate pattern owned by ruflo-aidefence ADR-0001:

  Canonical gate 1 (aidefence_has_pii)  ← 14-type PII detection w/ trust-level policies
  Canonical gate 2 (aidefence_scan)     ← outbound HMAC envelope + dual gates
  Canonical gate 3 (aidefence_is_safe)  ← inbound message verification

This ADR makes the alignment explicit so implementers reading both
plugins don't reconcile two different "gate" stories.

- ADR-0001 (Proposed) at docs/adrs/0001-federation-contract.md
- README adds Compatibility (pin v3.6 + plugin-agent-federation runtime),
  3-gate alignment block (canonical → federation specialization mapping),
  Namespace coordination (claims `federation` as the documented exception
  to <plugin-stem>-<intent> rule — when the plugin name is the intent,
  the namespace can match the plugin stem; defers to ruflo-agentdb
  ADR-0001), Verification + Architecture Decisions sections
- plugin.json keywords add mcp, pii-pipeline, audit-log (already at 0.2.0)
- scripts/smoke.sh — 10 structural checks: version + keywords, 3 skills +
  agent + command with frontmatter, ADR-097 budget block intact, 5-tier
  trust model documented, compliance modes (HIPAA/SOC2/GDPR), v3.6 pin,
  namespace coordination, 3-gate alignment cross-reference, ADR Proposed,
  no wildcard tools

Verification: bash plugins/ruflo-federation/scripts/smoke.sh → 10/10

Co-Authored-By: RuFlo <ruv@ruv.net>
2026-05-04 20:03:22 -04:00