Skip to content

chore(governance): approve PROP-vocabulary-contract + PROP-squad-routing - #678

Closed
Alencaf wants to merge 4 commits into
SynkraAI:mainfrom
Alencaf:chore/proposals-approved-20260507
Closed

chore(governance): approve PROP-vocabulary-contract + PROP-squad-routing#678
Alencaf wants to merge 4 commits into
SynkraAI:mainfrom
Alencaf:chore/proposals-approved-20260507

Conversation

@Alencaf

@Alencaf Alencaf commented May 7, 2026

Copy link
Copy Markdown

Summary

Records Eliel's approval (2026-05-07T19:15:00Z) on two governance proposals from the EPIC-MVP-CDM-CADASTRO Wave 1.A correction session:

  • PROP-20260507-vocabulary-contract: APPROVED
  • PROP-20260507-squad-routing-strategy: APPROVED

This PR ONLY records approval metadata. Implementation PRs follow per each proposal's rollout_plan.

PROP-vocabulary-contract — APPROVED

Generalizes migration-dictionary-guard.cjs hook from business-ai-first project-local copy into the AIOX framework (L1+L2). Adds Article VII (Vocabulary Contract) to the Constitution. Closes Akita's anti-vibecoding gap surfaced by Wave 1.A failure (V1 reverted due to drift between domain values and CHECK constraints).

Rationale: additive, low risk, prevents recurrence in any future AIOX project touching domain enums. 3-4h cost recovers in first-future-project savings.

PROP-squad-routing-strategy — APPROVED

Adds triage.routing_matrix to @aiox-master agent (5 mirror locations) plus advisory UserPromptSubmit hook suggesting squads (voice-clones, claude-code-mastery, audience-engine, db-inventory) by keyword match.

Rationale: closes declared squad-integration gap. Advisory-only mitigates false-positive risk. 30-50% token savings in multi-domain sessions compounds over time.

Implementation order: vocabulary-contract first → squad-routing references the now-canonical Article VII.

Test plan

  • Verify both proposal YAMLs show eliel_decision: APPROVED with timestamp + rationale
  • No other files modified (atomic governance PR)
  • Implementation PRs to follow separately per each proposal's rollout_plan

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Enhanced environment configuration template with support for multiple LLM providers (DeepSeek, OpenRouter, Anthropic, OpenAI) and integrations (Supabase, ClickUp, N8N, GitHub, Sentry, Railway, Vercel, Exa, Context7).
  • Documentation

    • Added comprehensive governance and audit framework documentation.
    • Updated Claude Code instructions with Portuguese language support.
    • Established formal evolution pipeline for framework improvements.

Alencaf and others added 4 commits May 5, 2026 17:02
…md ao atingir 5+

Estabelece regra operacional de governança de pipelines longos:

- Threshold: 5+ handoffs YAML para mesmo pipeline → MUST consolidar
- RUN-LOG.md vai em docs/stories/epics/{epic}/RUN-LOG.md (preferred)
- Handoff mais recente sempre fica individual (next session reads first)
- Originais arquivados em .aiox/handoffs/_archive/ (default)
- Preserva: contexto estratégico, ADRs, blockers resolvidos, schema changes
- Descarta: investigation steps, alternativas rejeitadas, tool sequences

Trigger desta sessão: pipeline meta-messaging Wave 1 → Wave 2 transition.
Mirror em business-ai-first/.claude/rules/handoff-consolidation.md (PR SynkraAI#59).

Atualiza CLAUDE.md (tabela de rules) com referência à nova regra.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
)

Establishes formal AIOX framework R&D pipeline triggered by Wave 1.A
correction in business-ai-first that exposed two systemic gaps:

1. No formal route for project-level audit findings to evolve framework
2. @aiox-master orchestrator has no triage.routing_matrix to consult
   specialized squads first when topic matches their domain

## What this PR adds

### audits/
- README.md — folder doctrine
- c-dev-organization-2026-05-07.md — narrative audit of C:/dev workspace
- promoted/AF-20260507-vocabulary-contract-failure.yaml — finding
- promoted/AF-20260507-aiox-master-routing-gap.yaml — finding

### governance/
- README.md — folder index
- evolution-pipeline.md — formal R&D pipeline spec (audit -> proposal -> Eliel approval -> PR)
- squad-activation-strategy.md — conditional consult-squad-first routing
- templates/audit-finding-tmpl.yaml — AuditFinding template
- templates/framework-proposal-tmpl.yaml — FrameworkProposal template
- proposals/README.md — proposal lifecycle doc
- proposals/PROP-20260507-vocabulary-contract.yaml — pending Eliel approval
- proposals/PROP-20260507-squad-routing-strategy.yaml — pending Eliel approval
- patterns/README.md — pattern catalog (catalog scaffold)

## Why this matters

Without the pipeline, every project re-discovers the same lessons,
voice-clone squads stay dormant, claude-code-mastery never gets invoked
from outside, and tokens burn on context redundancy. Eliel's diagnostic:
"todos os plans criados cogitaram em nenhum momento a perfeita
integração desses squads".

The pipeline is the discipline; the routing matrix is the mechanism.

## What this PR does NOT do (deferred to follow-up PRs after approval)

- Patch aiox-master.md to add triage block (separate PR per proposal approval)
- Add aiox-core/hooks/migration-dictionary-guard.cjs (separate PR)
- Add aiox-core/hooks/squad-suggestion-advisor.cjs (separate PR)
- Constitution amendment Article VII (separate PR)

This PR is governance-only. Implementation follows once Eliel signs the
two pending proposals.

## Authority

- Authors: @aiox-master (Orion) on Eliel's request
- Approver of governance content: Eliel (sole orchestrator approver)
- Reference: voice-clone formal opinions captured in business-ai-first
  ADR-DBOPS-V1-vocabulary-contract-failure.md

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Eliel approved both proposals on 2026-05-07T19:15:00Z:

- PROP-20260507-vocabulary-contract: APPROVED
  Closes Akita's Article VII gap. Generalizes migration-dictionary-guard
  hook from business-ai-first project-local copy to framework. Prevents
  Wave 1.A failure mode (V1 reverted) in any future AIOX project.

- PROP-20260507-squad-routing-strategy: APPROVED
  Adds triage.routing_matrix to @aiox-master. Advisory hook suggests
  squads (voice-clones, claude-code-mastery, audience-engine, db-inventory)
  by keyword match. Closes Eliel-declared squad integration gap.

Implementation order: vocabulary-contract first, then squad-routing
references Article VII once formalized.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vercel

vercel Bot commented May 7, 2026

Copy link
Copy Markdown

@Alencaf is attempting to deploy a commit to the SINKRA - AIOX Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added area: agents Agent system related area: workflows Workflow system related squad mcp type: test Test coverage and quality area: core Core framework (.aios-core/core/) area: installer Installer and setup (packages/installer/) area: synapse SYNAPSE context engine area: cli CLI tools (bin/, packages/aios-pro-cli/) area: pro Pro features (pro/) area: health-check Health check system area: docs Documentation (docs/) area: devops CI/CD, GitHub Actions (.github/) labels May 7, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome to aiox-core! Thanks for your first pull request.

What happens next?

  1. Automated checks will run on your PR
  2. A maintainer will review your changes
  3. Once approved, we'll merge your contribution!

PR Checklist:

Thanks for contributing!

@coderabbitai

coderabbitai Bot commented May 7, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This pull request establishes the AIOX framework governance infrastructure: a formal evolution pipeline that discovers gaps via audits, proposes framework solutions via governance proposals, approves them through a single decision authority, and rolls out approved patterns across consumer projects. The changes consolidate configuration into Portuguese, define audit-driven discovery workflows, and operationalize two approved proposals (squad routing strategy and vocabulary contract pattern).

Changes

AIOX Framework Governance Infrastructure & Evolution Pipeline

Layer / File(s) Summary
Configuration & Instructions Foundation
.claude/settings.json, .claude/CLAUDE.md, .env.example
Portuguese language setting added. CLAUDE.md condensed to consolidated agent/workflow overview. Environment template expanded to include LLM providers (DeepSeek, OpenRouter), Supabase credentials, and deployment tokens (Railway, Vercel).
Evolution Pipeline & Formal Process
governance/README.md, governance/evolution-pipeline.md, governance/templates/*
Formal audit-to-framework evolution pipeline defined: auditor roles, framework-candidate triggers, YAML templates for findings and proposals, decision flow diagram, storage layout, and operational rules.
Audit Findings & Evidence
audits/README.md, audits/c-dev-organization-2026-05-07.md, audits/promoted/AF-*.yaml
Workspace organization audit with decision matrix. Two framework-candidate findings: aiox-master routing gap (evidence for squad routing proposal) and vocabulary contract failure (evidence for vocabulary store pattern).
Governance Proposals & Remediation
governance/proposals/README.md, governance/proposals/PROP-*.yaml
Two APPROVED proposals: Squad Activation Routing (keyword-tuned advisory routing, additive) and Vocabulary Contract Store (multi-writer vocabulary coordination, constitution amendment). Specifies target layers, operations, rollout plans.
Framework Patterns Catalog
governance/patterns/README.md
Pattern catalog documenting required anatomy (Problem, Pattern, When/When-NOT, Implementation, Examples, Source). Lists two approved patterns derived from proposals.
Squad Activation Strategy
governance/squad-activation-strategy.md
Comprehensive routing strategy for @aiox-master: keyword-based squad consultation matrix, direct-answer domains, explicit @squad override flow, squad inventory, cross-pollination to claude-code-mastery, companion advisor hook, and migration plan.
Operational Rules & Stories
.claude/rules/handoff-consolidation.md, .claude/commands/AIOX/stories/story-7.1.1.md
Handoff consolidation rule: 5+ YAMLs per pipeline trigger RUN-LOG.md with wave preservation. Story 7.1.1 bootstrap: /dev workspace setup contingent on Supabase credentials.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

type: docs, needs-po-review

Suggested reviewers

  • oalanicolas
  • Pedrovaleriolopez
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the PR's core change: approving two specific governance proposals with clear references to the proposal identifiers.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🧹 Nitpick comments (6)
.claude/CLAUDE.md (1)

38-45: ⚡ Quick win

Specify languages for both fenced code blocks.

Both blocks are missing a language tag and trigger MD040.

Suggested fix
-```
+```text
 *draft / *create-story          → `@sm`
 ...
 *push                           → `@devops`

- +text
aiox-core/
├── .aiox-core/ ← core do framework (tasks, agents, infrastructure)
...
└── .env ← secrets locais (nunca commitar)

Also applies to: 86-96

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/CLAUDE.md around lines 38 - 45, The two fenced code blocks (the one
beginning with "*draft / *create-story → `@sm`" and the one showing the
"aiox-core/" directory tree) are missing language tags and trigger MD040; add a
language identifier like "text" to both opening fences (e.g., replace ``` with
```text) and do the same for the additional block referenced at lines 86–96 so
all three fenced blocks include a language tag.
.env.example (1)

46-48: ⚡ Quick win

Reorder keys to satisfy dotenv-linter ordering checks.

Current key order triggers UnorderedKey warnings; sorting these lines removes lint churn in CI.

Suggested fix
-SUPABASE_URL=
 SUPABASE_ANON_KEY=
 SUPABASE_SERVICE_ROLE_KEY=
+SUPABASE_URL=
...
-NODE_ENV=development
 AIOX_VERSION=2.2.0
+NODE_ENV=development

Also applies to: 95-96

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.env.example around lines 46 - 48, Reorder the SUPABASE env keys so they
satisfy dotenv-linter's alphabetical ordering: place SUPABASE_ANON_KEY before
SUPABASE_SERVICE_ROLE_KEY and SUPABASE_URL (i.e., SUPABASE_ANON_KEY,
SUPABASE_SERVICE_ROLE_KEY, SUPABASE_URL) and apply the same alphabetical
ordering fix to the other SUPABASE key group mentioned (the block referenced
around the later occurrence).
governance/README.md (1)

15-30: ⚡ Quick win

Add a language tag to the layout code fence.

The fenced block has no language and triggers MD040.

Suggested fix
-```
+```text
 governance/
 ├── README.md                       # this file
 ...
     └── framework-proposal-tmpl.yaml
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @governance/README.md around lines 15 - 30, The README's directory tree is in
a fenced code block without a language tag (triggering MD040); modify the
opening fence for that block in governance/README.md to include a language tag
(e.g., change "" to "text") so the block is recognized as plain text and
the linter warning is resolved; leave the block contents and the closing fence
intact.


</details>

</blockquote></details>
<details>
<summary>.claude/rules/handoff-consolidation.md (1)</summary><blockquote>

`102-116`: _⚡ Quick win_

**Add a language identifier to the fenced code block.**

The block starting at Line 102 is untyped; markdownlint flags this (MD040).  
 

<details>
<summary>Suggested fix</summary>

```diff
-```
+```text
 .aiox/handoffs/
 ├── INDEX-meta-messaging-pipeline.md       (refs RUN-LOG)
 ...
 └── RUN-LOG.md   (waves 1-5 consolidated, narrative form)
 ```
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/rules/handoff-consolidation.md around lines 102 - 116, The fenced
code block showing the handoff directory tree (starting with ".aiox/handoffs/")
in .claude/rules/handoff-consolidation.md is missing a language identifier; edit
that code fence to include a language tag (e.g., text or plain) so the
block becomes text followed by the directory tree and closing , which
resolves the markdownlint MD040 warning.


</details>

</blockquote></details>
<details>
<summary>governance/templates/audit-finding-tmpl.yaml (1)</summary><blockquote>

`37-41`: _💤 Low value_

**Consider enumerating allowed `kind` values in comments to prevent drift.**

Both `AF-20260507-aiox-master-routing-gap.yaml` and `AF-20260507-vocabulary-contract-failure.yaml` already use kinds not shown here (`governance-doc`, `existing-pattern-source`, `voice-clone-finding`, `voice-clone-personas`, `handoff-contract`). Without a canonical list, the `kind` field will diverge across findings and become non-queryable.

<details>
<summary>🛠️ Proposed fix</summary>

```diff
   references:
-    - kind: ADR
+    - kind: ADR                       # ADR | code | hook | governance-doc | voice-clone-finding | handoff-contract | existing-pattern-source
       path: ""                        # e.g., docs/decisions/ADR-...md
-    # - kind: code
+    # - kind: <other-kind>
     #   path: ""
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@governance/templates/audit-finding-tmpl.yaml` around lines 37 - 41, The
template's references.kinds are not enumerated which allows divergent values;
update the audit-finding template by adding a commented canonical list of
allowed kind values directly above or beside the references block (referencing
the references mapping and the kind field), e.g. list entries like ADR,
governance-doc, existing-pattern-source, voice-clone-finding,
voice-clone-personas, handoff-contract, code, etc., so authors must choose from
the documented set; ensure the comment is clear and kept in the same YAML block
so it’s visible when editing the template.
```

</details>

</blockquote></details>
<details>
<summary>governance/squad-activation-strategy.md (1)</summary><blockquote>

`95-95`: _💤 Low value_

**Add a language identifier to the two unlabeled fenced code blocks (markdownlint MD040).**

Lines 95 (decision-tree pseudocode) and 218 (cross-pollination ASCII flow) trigger `MD040`. `text` is a safe default; `mermaid` could be considered for the flow if you want it rendered.

<details>
<summary>📝 Proposed fix</summary>

```diff
-### Decision tree (pseudocode)
-
-```
+### Decision tree (pseudocode)
+
+```text
 on user message:
```

```diff
-### Flow
-
-```
+### Flow
+
+```text
 [business-ai-first agent learns X about Claude Code]
```
</details>





Also applies to: 218-218

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @governance/squad-activation-strategy.md at line 95, The two unlabeled fenced
code blocks under the "Decision tree (pseudocode)" block (the snippet starting
with "on user message:") and the "Flow" block (the ASCII flow starting with
"[business-ai-first agent learns X about Claude Code]") need language
identifiers to satisfy markdownlint MD040; update their opening fences to
include a language token such as "text" (or "mermaid" for the flow if you want
rendering) so the blocks read text and text (or ```mermaid for the flow)
respectively.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.claude/commands/AIOX/stories/story-7.1.1.md:

  • Line 6: The story's front-matter/status line "Status: ✅ Done" incorrectly
    marks the story complete despite two unchecked acceptance criteria; change
    "Status: ✅ Done" to a non-complete state (e.g., "Status: ⌛ In Progress" or
    "Status: To Do") and ensure the acceptance criteria checkboxes corresponding to
    the unchecked AC items remain unchecked; update any duplicate status entries
    that also reference the same ACs (the noted "Also applies to: 35-37") so the
    status accurately reflects remaining acceptance criteria.
  • Line 36: The checklist contains contradictory dependency notes about Bun on
    the lines that read "cd C:\dev\aiox-dashboard && npm install completa sem
    erros (bun não instalado, npm usado como fallback)" and the opposing note at
    line 60; pick one factual state and make both entries identical: either state
    that Bun is not installed and npm was used as a fallback, or state that Bun is
    installed and used — update both occurrences of that checklist item (the two
    lines with the same cd C:\dev\aiox-dashboard && npm install text) so the
    dependency note is consistent across the story.

In @audits/c-dev-organization-2026-05-07.md:

  • Around line 124-147: The Markdown code block for the directory tree is missing
    a language specifier; update the triple-backtick fence that contains "C:/dev/"
    to include a language (e.g., text) so the block becomes text followed by
    the directory listing and closing ``` to satisfy MD040; ensure you modify the
    specific code block that starts with C:/dev/ in the diff.

In @audits/promoted/AF-20260507-vocabulary-contract-failure.yaml:

  • Line 58: The proposed_disposition value references the audit finding artifact
    ID instead of the sister proposal; update the string in proposed_disposition
    that currently reads "Sister proposal: AF-20260507-aiox-master-routing-gap" to
    the correct proposal artifact "Sister proposal:
    PROP-20260507-squad-routing-strategy" so governance cross-references resolve
    correctly.

In @audits/README.md:

  • Around line 9-17: The fenced code block in README.md lacks a language
    specifier and triggers MD040; update the opening fence for the tree block (the
    triple-backtick that starts the block in README.md) to include a language (e.g.,
    change totext or ```txt) so the block is a labeled code fence and the
    linter no longer flags it.

In @governance/evolution-pipeline.md:

  • Around line 15-17: Three fenced code blocks in
    governance/evolution-pipeline.md are missing language specifiers (MD040); update
    each opening fence to include a language (e.g., "text") for the blocks
    containing the lines "Project audit → Finding → Proposal → Eliel approval →
    aiox-core PR → Distribution", the block that begins with "┌───..." and the block
    containing "aiox-core/". Edit those three code fences so their opening backticks
    become triple-backticks plus the language tag (e.g., ```text) to satisfy the
    linter.
  • Line 163: The FrameworkProposal template's eliel_decision enum uses
    APPPROVE/REJECT (singular) which is inconsistent with proposal instances; update
    the enum values for eliel_decision on the FrameworkProposal template to use the
    canonical past-tense values: "PENDING|APPROVED|REJECTED|NEEDS_REVISION" (ensure
    you update the FrameworkProposal definition that declares eliel_decision and any
    related validation/usage that expects the old strings).

In @governance/patterns/README.md:

  • Around line 11-12: The table rows for "Vocabulary Contract Store"
    (PROP-20260507-vocabulary-contract.yaml) and "Squad Activation Routing"
    (PROP-20260507-squad-routing-strategy.yaml) are still marked PENDING/Proposed;
    update those catalog entries to reflect the approved state (e.g., change status
    column to APPROVED and the lifecycle column to Accepted/Approved and remove
    "(PENDING)" if present) so the README matches the PR's recorded approvals; edit
    the two lines in governance/patterns/README.md accordingly.

In @governance/proposals/README.md:

  • Around line 9-15: Update the fenced code block in
    governance/proposals/README.md to include a language specifier (e.g., text or
    plaintext) so the linter MD040 is satisfied; locate the tree-style block showing
    "proposals/ ├── README.md ..." and change the opening backticks to include the
    specifier (for example, ```text) and save.
  • Around line 20-22: The governance status values are inconsistent: change the
    README proposal status entry from "APPROVE" to "APPROVED", ensure the
    eliel_decision field in PROP-20260507-squad-routing-strategy.yaml uses
    "APPROVED" (the eliel_decision key), and update the eliel_decision enum in the
    evolution-pipeline document to use the single canonical value "APPROVED"
    (replacing any "APPROVE" occurrence) so all three locations agree.

In @governance/squad-activation-strategy.md:

In @governance/templates/framework-proposal-tmpl.yaml:

  • Line 8: The template uses the decision enum value "APPROVE" which must be
    changed to "APPROVED" to match the approved-state contract; locate every
    occurrence of the string literal "APPROVE" in the framework-proposal-tmpl.yaml
    (including the other occurrence noted) and replace it with "APPROVED", and
    update any nearby comment text that references "APPROVE" so the template and its
    documentation consistently use "APPROVED".

Nitpick comments:
In @.claude/CLAUDE.md:

  • Around line 38-45: The two fenced code blocks (the one beginning with "*draft
    / *create-story → @sm" and the one showing the "aiox-core/" directory tree) are
    missing language tags and trigger MD040; add a language identifier like "text"
    to both opening fences (e.g., replace withtext) and do the same for the
    additional block referenced at lines 86–96 so all three fenced blocks include a
    language tag.

In @.claude/rules/handoff-consolidation.md:

  • Around line 102-116: The fenced code block showing the handoff directory tree
    (starting with ".aiox/handoffs/") in .claude/rules/handoff-consolidation.md is
    missing a language identifier; edit that code fence to include a language tag
    (e.g., text or plain) so the block becomes text followed by the directory tree and closing , which resolves the markdownlint MD040 warning.

In @.env.example:

  • Around line 46-48: Reorder the SUPABASE env keys so they satisfy
    dotenv-linter's alphabetical ordering: place SUPABASE_ANON_KEY before
    SUPABASE_SERVICE_ROLE_KEY and SUPABASE_URL (i.e., SUPABASE_ANON_KEY,
    SUPABASE_SERVICE_ROLE_KEY, SUPABASE_URL) and apply the same alphabetical
    ordering fix to the other SUPABASE key group mentioned (the block referenced
    around the later occurrence).

In @governance/README.md:

  • Around line 15-30: The README's directory tree is in a fenced code block
    without a language tag (triggering MD040); modify the opening fence for that
    block in governance/README.md to include a language tag (e.g., change "" to "text") so the block is recognized as plain text and the linter warning is
    resolved; leave the block contents and the closing fence intact.

In @governance/squad-activation-strategy.md:

  • Line 95: The two unlabeled fenced code blocks under the "Decision tree
    (pseudocode)" block (the snippet starting with "on user message:") and the
    "Flow" block (the ASCII flow starting with "[business-ai-first agent learns X
    about Claude Code]") need language identifiers to satisfy markdownlint MD040;
    update their opening fences to include a language token such as "text" (or
    "mermaid" for the flow if you want rendering) so the blocks read text and text (or ```mermaid for the flow) respectively.

In @governance/templates/audit-finding-tmpl.yaml:

  • Around line 37-41: The template's references.kinds are not enumerated which
    allows divergent values; update the audit-finding template by adding a commented
    canonical list of allowed kind values directly above or beside the references
    block (referencing the references mapping and the kind field), e.g. list entries
    like ADR, governance-doc, existing-pattern-source, voice-clone-finding,
    voice-clone-personas, handoff-contract, code, etc., so authors must choose from
    the documented set; ensure the comment is clear and kept in the same YAML block
    so it’s visible when editing the template.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `a860d5b2-e028-4a83-9e77-e16435c19146`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between bdaaeec34024d0c89806124aaf1427e0eb721682 and d24f21427094a1f452f57e1ffa7ef18d5e73a2a3.

</details>

<details>
<summary>⛔ Files ignored due to path filters (1)</summary>

* `package-lock.json` is excluded by `!**/package-lock.json`

</details>

<details>
<summary>📒 Files selected for processing (18)</summary>

* `.claude/CLAUDE.md`
* `.claude/commands/AIOX/stories/story-7.1.1.md`
* `.claude/rules/handoff-consolidation.md`
* `.claude/settings.json`
* `.env.example`
* `audits/README.md`
* `audits/c-dev-organization-2026-05-07.md`
* `audits/promoted/AF-20260507-aiox-master-routing-gap.yaml`
* `audits/promoted/AF-20260507-vocabulary-contract-failure.yaml`
* `governance/README.md`
* `governance/evolution-pipeline.md`
* `governance/patterns/README.md`
* `governance/proposals/PROP-20260507-squad-routing-strategy.yaml`
* `governance/proposals/PROP-20260507-vocabulary-contract.yaml`
* `governance/proposals/README.md`
* `governance/squad-activation-strategy.md`
* `governance/templates/audit-finding-tmpl.yaml`
* `governance/templates/framework-proposal-tmpl.yaml`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

**Story ID:** 7.1.1
**Epic:** Epic-7 - Dashboard Workspace Integration
**Wave:** Wave 1 (Foundation)
**Status:** ✅ Done

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Status: ✅ Done conflicts with pending acceptance criteria.

With unchecked ACs at Line 35 and Line 37, this should not be marked done yet; it can mislead planning/reporting.

Also applies to: 35-37

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/commands/AIOX/stories/story-7.1.1.md at line 6, The story's
front-matter/status line "Status: ✅ Done" incorrectly marks the story complete
despite two unchecked acceptance criteria; change "Status: ✅ Done" to a
non-complete state (e.g., "Status: ⌛ In Progress" or "Status: To Do") and ensure
the acceptance criteria checkboxes corresponding to the unchecked AC items
remain unchecked; update any duplicate status entries that also reference the
same ACs (the noted "Also applies to: 35-37") so the status accurately reflects
remaining acceptance criteria.

- [x] `C:\dev\.gitignore` existe cobrindo `node_modules`, `.env`, lock files dos dois projetos
- [x] `C:\dev\aiox-dashboard\.env.local` criado a partir do `.env.example` do dashboard
- [ ] Variáveis Supabase alinhadas entre `aiox-core` e `aiox-dashboard` — **pendente: preencher credenciais**
- [x] `cd C:\dev\aiox-dashboard && npm install` completa sem erros (bun não instalado, npm usado como fallback)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Dependency note is contradictory (bun not installed vs Bun installed).

Line 36 and Line 60 state opposite conditions; please keep one factual state to avoid operator confusion.

Also applies to: 60-60

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/commands/AIOX/stories/story-7.1.1.md at line 36, The checklist
contains contradictory dependency notes about Bun on the lines that read "`cd
C:\dev\aiox-dashboard && npm install` completa sem erros (bun não instalado, npm
usado como fallback)" and the opposing note at line 60; pick one factual state
and make both entries identical: either state that Bun is not installed and npm
was used as a fallback, or state that Bun is installed and used — update both
occurrences of that checklist item (the two lines with the same `cd
C:\dev\aiox-dashboard && npm install` text) so the dependency note is consistent
across the story.

Comment on lines +124 to +147
```
C:/dev/
├── CLAUDE.md # workspace root config (keep)
├── .gitignore # workspace gitignore (keep)
├── aiox-core/ # framework canonical
│ ├── audits/ # cross-project audit reports (NEW — this file lives here)
│ ├── governance/ # evolution pipeline + handoff types (NEW)
│ ├── docs/
│ │ ├── architecture/cross-project/ # moved from C:/dev/architecture
│ │ ├── research/notebooklm/ # moved from C:/dev/AIOX-*.md
│ │ └── guides/token-economy/ # moved from C:/dev/GUIA-*.md
│ ├── infrastructure/docker/ # moved from C:/dev/docker (if framework-shared)
│ └── archive/ # for legacy assets that we don't want to delete
│ └── legacy-etl/ # if kommo-sync becomes legacy
├── business-ai-first/ # project (active epic CDM)
│ ├── docs/research/kommo-forms-pre-deactivation/ # moved from loose Forms_*.png
│ └── db-inventory/exports/ # moved from loose [CM] *.csv
├── aiox-dashboard/ # AIOS Platform UI (confirm active)
├── cadastro-rapido/ # Next.js portal (confirm active)
├── cdm-portal/ # confirm if active or delete
├── db-inventory/ # cross-project DB asset (keep at root, add OWNERSHIP.md)
└── archive/ # workspace-level archive for things we want to keep but not active
└── kommo-sync/ # if legacy
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a language specifier to the proposed directory-structure code block (MD040).

🛠️ Proposed fix
-```
+```text
 C:/dev/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
C:/dev/
├── CLAUDE.md # workspace root config (keep)
├── .gitignore # workspace gitignore (keep)
├── aiox-core/ # framework canonical
│ ├── audits/ # cross-project audit reports (NEW — this file lives here)
│ ├── governance/ # evolution pipeline + handoff types (NEW)
│ ├── docs/
│ │ ├── architecture/cross-project/ # moved from C:/dev/architecture
│ │ ├── research/notebooklm/ # moved from C:/dev/AIOX-*.md
│ │ └── guides/token-economy/ # moved from C:/dev/GUIA-*.md
│ ├── infrastructure/docker/ # moved from C:/dev/docker (if framework-shared)
│ └── archive/ # for legacy assets that we don't want to delete
│ └── legacy-etl/ # if kommo-sync becomes legacy
├── business-ai-first/ # project (active epic CDM)
│ ├── docs/research/kommo-forms-pre-deactivation/ # moved from loose Forms_*.png
│ └── db-inventory/exports/ # moved from loose [CM] *.csv
├── aiox-dashboard/ # AIOS Platform UI (confirm active)
├── cadastro-rapido/ # Next.js portal (confirm active)
├── cdm-portal/ # confirm if active or delete
├── db-inventory/ # cross-project DB asset (keep at root, add OWNERSHIP.md)
└── archive/ # workspace-level archive for things we want to keep but not active
└── kommo-sync/ # if legacy
```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 124-124: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@audits/c-dev-organization-2026-05-07.md` around lines 124 - 147, The Markdown
code block for the directory tree is missing a language specifier; update the
triple-backtick fence that contains "C:/dev/" to include a language (e.g.,
```text) so the block becomes ```text followed by the directory listing and
closing ``` to satisfy MD040; ensure you modify the specific code block that
starts with C:/dev/ in the diff.

- "Promote business-ai-first/.claude/hooks/migration-dictionary-guard.cjs → aiox-core/hooks/ as framework hook"
- "Add Article VII (Vocabulary Contract) to .aiox-core/constitution.md"
- "Document Vocabulary Contract pattern in aiox-core/governance/patterns/vocabulary-store.md"
- "Sister proposal: AF-20260507-aiox-master-routing-gap"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Wrong artifact ID in proposed_disposition — references an audit finding, not the sister proposal.

Line 58 reads "Sister proposal: AF-20260507-aiox-master-routing-gap", but AF-20260507-aiox-master-routing-gap is the audit finding; the corresponding proposal is PROP-20260507-squad-routing-strategy. Governance trail navigation depends on correct cross-references.

🛠️ Proposed fix
-    - "Sister proposal: AF-20260507-aiox-master-routing-gap"
+    - "Sister proposal: PROP-20260507-squad-routing-strategy"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- "Sister proposal: AF-20260507-aiox-master-routing-gap"
- "Sister proposal: PROP-20260507-squad-routing-strategy"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@audits/promoted/AF-20260507-vocabulary-contract-failure.yaml` at line 58, The
proposed_disposition value references the audit finding artifact ID instead of
the sister proposal; update the string in proposed_disposition that currently
reads "Sister proposal: AF-20260507-aiox-master-routing-gap" to the correct
proposal artifact "Sister proposal: PROP-20260507-squad-routing-strategy" so
governance cross-references resolve correctly.

Comment thread audits/README.md
Comment on lines +9 to +17
```
audits/
├── README.md # this file
├── <audit-narrative>.md # human-readable audit reports (e.g., c-dev-organization-2026-05-07.md)
├── promoted/ # AuditFindings flagged framework_candidate: true
│ └── AF-<YYYYMMDD>-<slug>.yaml
└── archived/ # AuditFindings that stayed scope-bound (project-only)
└── AF-<YYYYMMDD>-<slug>.yaml
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add language specifier to the fenced code block (MD040).

🛠️ Proposed fix
-```
+```text
 audits/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
audits/
├── README.md # this file
├── <audit-narrative>.md # human-readable audit reports (e.g., c-dev-organization-2026-05-07.md)
├── promoted/ # AuditFindings flagged framework_candidate: true
│ └── AF-<YYYYMMDD>-<slug>.yaml
└── archived/ # AuditFindings that stayed scope-bound (project-only)
└── AF-<YYYYMMDD>-<slug>.yaml
```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 9-9: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@audits/README.md` around lines 9 - 17, The fenced code block in README.md
lacks a language specifier and triggers MD040; update the opening fence for the
tree block (the triple-backtick that starts the block in README.md) to include a
language (e.g., change ``` to ```text or ```txt) so the block is a labeled code
fence and the linter no longer flags it.

Comment on lines +11 to +12
| Vocabulary Contract Store | `PROP-20260507-vocabulary-contract.yaml` (PENDING) | Proposed | (created on APPROVE) |
| Squad Activation Routing | `PROP-20260507-squad-routing-strategy.yaml` (PENDING) | Proposed | [`../squad-activation-strategy.md`](../squad-activation-strategy.md) |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Update catalog statuses to reflect approved proposals.

This table still marks both proposals as PENDING/Proposed, but the PR objective records them as approved. Keep the catalog in sync to prevent governance state drift.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@governance/patterns/README.md` around lines 11 - 12, The table rows for
"Vocabulary Contract Store" (`PROP-20260507-vocabulary-contract.yaml`) and
"Squad Activation Routing" (`PROP-20260507-squad-routing-strategy.yaml`) are
still marked PENDING/Proposed; update those catalog entries to reflect the
approved state (e.g., change status column to APPROVED and the lifecycle column
to Accepted/Approved and remove "(PENDING)" if present) so the README matches
the PR's recorded approvals; edit the two lines in governance/patterns/README.md
accordingly.

Comment on lines +9 to +15
```
proposals/
├── README.md # this file
├── PROP-<YYYYMMDD>-<slug>.yaml # active proposals (PENDING / APPROVED / NEEDS_REVISION)
└── archive/ # rejected or superseded proposals
└── PROP-<YYYYMMDD>-<slug>.yaml
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a language specifier to the fenced code block.

The linter flags this as MD040. Using text or plaintext satisfies the rule without misrepresenting the content.

🛠️ Proposed fix
-```
+```text
 proposals/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
proposals/
├── README.md # this file
├── PROP-<YYYYMMDD>-<slug>.yaml # active proposals (PENDING / APPROVED / NEEDS_REVISION)
└── archive/ # rejected or superseded proposals
└── PROP-<YYYYMMDD>-<slug>.yaml
```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 9-9: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@governance/proposals/README.md` around lines 9 - 15, Update the fenced code
block in governance/proposals/README.md to include a language specifier (e.g.,
text or plaintext) so the linter MD040 is satisfied; locate the tree-style block
showing "proposals/ ├── README.md ..." and change the opening backticks to
include the specifier (for example, ```text) and save.

Comment on lines +20 to +22
- **APPROVE** — Eliel signed; implementer can open PR in aiox-core
- **REJECT** — Eliel declined; proposal moves to `archive/` with rationale
- **NEEDS_REVISION** — Eliel requested changes; proposer addresses and resubmits

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

APPROVE vs APPROVED — schema enum mismatch across the governance system.

The status defined here is APPROVE, but PROP-20260507-squad-routing-strategy.yaml (line 68) uses eliel_decision: "APPROVED", and the same mismatch propagates to the eliel_decision enum in governance/evolution-pipeline.md (line 163). All three locations need to agree on a single canonical value before any YAML validation or tooling is layered on top.

🛠️ Proposed fix (align on `APPROVED`)
-  - **APPROVE** — Eliel signed; implementer can open PR in aiox-core
-  - **REJECT** — Eliel declined; proposal moves to `archive/` with rationale
-  - **NEEDS_REVISION** — Eliel requested changes; proposer addresses and resubmits
+  - **APPROVED** — Eliel signed; implementer can open PR in aiox-core
+  - **REJECTED** — Eliel declined; proposal moves to `archive/` with rationale
+  - **NEEDS_REVISION** — Eliel requested changes; proposer addresses and resubmits

Apply the matching correction to governance/evolution-pipeline.md line 163:

-    eliel_decision: "PENDING|APPROVE|REJECT|NEEDS_REVISION"
+    eliel_decision: "PENDING|APPROVED|REJECTED|NEEDS_REVISION"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- **APPROVE** — Eliel signed; implementer can open PR in aiox-core
- **REJECT** — Eliel declined; proposal moves to `archive/` with rationale
- **NEEDS_REVISION** — Eliel requested changes; proposer addresses and resubmits
- **APPROVED** — Eliel signed; implementer can open PR in aiox-core
- **REJECTED** — Eliel declined; proposal moves to `archive/` with rationale
- **NEEDS_REVISION** — Eliel requested changes; proposer addresses and resubmits
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@governance/proposals/README.md` around lines 20 - 22, The governance status
values are inconsistent: change the README proposal status entry from "APPROVE"
to "APPROVED", ensure the eliel_decision field in
PROP-20260507-squad-routing-strategy.yaml uses "APPROVED" (the eliel_decision
key), and update the eliel_decision enum in the evolution-pipeline document to
use the single canonical value "APPROVED" (replacing any "APPROVE" occurrence)
so all three locations agree.

**Date:** 2026-05-07
**Author:** @aiox-master (Orion)
**Approval gate:** Eliel M. Alencar
**Source finding:** [`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml) (to be created)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Confirm the audit file referenced by the link actually exists on this branch.
fd -t f 'AF-20260507-aiox-master-routing-gap.yaml'

Repository: SynkraAI/aiox-core

Length of output: 119


Remove stale "(to be created)" annotation from source-finding link.

The audit file audits/promoted/AF-20260507-aiox-master-routing-gap.yaml already exists in the repository, so the "(to be created)" parenthetical is misleading. Remove it.

Proposed fix
-**Source finding:** [`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml) (to be created)
+**Source finding:** [`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**Source finding:** [`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml) (to be created)
**Source finding:** [`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@governance/squad-activation-strategy.md` at line 7, Remove the stale "(to be
created)" parenthetical from the Source finding line that references
[`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml)
in the squad-activation-strategy content; edit the line so it reads only the
link/name (e.g., "**Source finding:**
[`AF-20260507-aiox-master-routing-gap`](../audits/promoted/AF-20260507-aiox-master-routing-gap.yaml)")
without the extra note.

# 1. Copy this file to aiox-core/governance/proposals/PROP-<YYYYMMDD>-<slug>.yaml
# 2. Fill all fields. Reference source AuditFinding by ID.
# 3. Submit to Eliel for approval.
# 4. On APPROVE: implementer opens PR in aiox-core; fill implementation.* fields.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Align decision enum with the approved-state contract (APPROVED).

The template currently encodes APPROVE, while this PR’s governance contract uses APPROVED. This will create state drift across proposal YAMLs and any automation that parses decision values.

Suggested fix
-#   4. On APPROVE: implementer opens PR in aiox-core; fill implementation.* fields.
+#   4. On APPROVED: implementer opens PR in aiox-core; fill implementation.* fields.
...
-    eliel_decision: "PENDING"         # PENDING | APPROVE | REJECT | NEEDS_REVISION
+    eliel_decision: "PENDING"         # PENDING | APPROVED | REJECT | NEEDS_REVISION

Also applies to: 48-48

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@governance/templates/framework-proposal-tmpl.yaml` at line 8, The template
uses the decision enum value "APPROVE" which must be changed to "APPROVED" to
match the approved-state contract; locate every occurrence of the string literal
"APPROVE" in the framework-proposal-tmpl.yaml (including the other occurrence
noted) and replace it with "APPROVED", and update any nearby comment text that
references "APPROVE" so the template and its documentation consistently use
"APPROVED".

@rafaelscosta

Copy link
Copy Markdown
Collaborator

Superseded by #681.

I rebased the useful governance work from this PR on current main, addressed the review feedback locally, validated it with lint/typecheck/manifest/semantic-lint/full Jest, and opened the replacement PR from the main repository branch to avoid force-pushing over the contributor fork history.

rafaelscosta added a commit that referenced this pull request May 7, 2026
Supersedes #678. Local validation passed: lint, typecheck, validate:manifest, targeted ownership test, and full Jest suite.
tuanmedeiros pushed a commit to tuanmedeiros/aios-core-synkraay that referenced this pull request Jun 2, 2026
Supersedes SynkraAI#678. Local validation passed: lint, typecheck, validate:manifest, targeted ownership test, and full Jest suite.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: agents Agent system related area: cli CLI tools (bin/, packages/aios-pro-cli/) area: core Core framework (.aios-core/core/) area: devops CI/CD, GitHub Actions (.github/) area: docs Documentation (docs/) area: health-check Health check system area: installer Installer and setup (packages/installer/) area: pro Pro features (pro/) area: synapse SYNAPSE context engine area: workflows Workflow system related mcp squad type: test Test coverage and quality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants