Skip to content
Conduit

skill

aurora-ai

Production-ready multi-agent OpenCode configuration featuring automatic model fallback, persistent structured project memory, and reusable workflows. Built for modern AI tooling and forkability.

himuraxp/aurora-aicommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/himuraxp/aurora-ai itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 26, 2026

License Last Commit OpenCode Compatible

A production-ready OpenCode setup for multi-agent AI workflows — Angular, Node.js, NestJS, Astro.

Forkable. Extensible. Ready to use.

English · Français

If Aurora is useful to you, consider starring the repository ⭐ — it helps other builders find it.


Why Aurora?

AI agents (OpenCode, Cursor, Claude...) don't know which standard to follow unless you tell them — and they can lose project context between sessions. Aurora turns OpenCode into an orchestrated, self-documenting engineering team.

What you get:

  • 19 specialized agents + 4 plugin agents — engineering roles (reviewer, tester, security, architect, designer...), a Search & Growth team and a delegated product owner
  • 17 universal standards + 44 skills — adversarial review, verification, commits, plus the 17-skill accessibility suite
  • Execution graph core (new in v1.4.0) — stdlib Python package skills/graph_core/: transition engine, transactional journal, fenced scheduler — spec-first (RFC), 84 tests, running as a shadow pilot; full docs in docs/graph-engineering/
  • Persistent project memory — 7 docs/ai/ documents auto-read at session start: agents keep context across sessions
  • 14 models with automatic fallback — 250k → 1M context, cost-based agent assignment
  • Consistent across machines — same setup and behavior everywhere, with ready-to-use examples (Angular, Node.js API, monorepo)

→ Quick Start — operational in a few minutes.

Quick Start

1. Install (first time)

git clone https://github.com/himuraxp/aurora-ai.git ~/.config/opencode-config
cd ~/.config/opencode-config
npm run setup

Bash equivalent: ~/.config/opencode-config/scripts/setup.sh

setup.sh is interactive: checks prerequisites (Node.js 18+, npm), installs or updates opencode-ai (npm global) and rtk (Homebrew on macOS), offers the MCP servers, copies agents, standards, frameworks and config files, and asks interactively for environment variables (API key, endpoints).

Secrets live in ~/.config/opencode/.env (permissions 600, never versioned) and in an idempotent managed block in your shell rc — the API key never exists in two copies. Details in Configuration.

If .env already exists with the required variables, the configuration step is skipped. To reconfigure: npm run setup -- --force.

With an API key configured, the setup ends with an optional model configuration step: configure-models.sh probes which models your keys can actually use and maps them to agent roles — Infomaniak, OpenAI, Anthropic, Google, OpenRouter or a local Ollama. Existing verified setups are preserved as-is; skip the prompt and run npm run configure-models anytime.

2. Update (subsequent changes)

cd ~/.config/opencode-config
git pull
npm run update

Bash equivalent: ./scripts/install.sh

install.sh reports each file as new, updated or unchanged and only rewrites modified files. Options:

npm run setup             # full update (config + dependencies + checks)
npm run prune             # clean orphan files after renames/removals
npm run update -- --no-config   # update without touching opencode.json / plugins

⚠️ Do not pipe npm run update into head (or any early-closing consumer) — SIGPIPE kills the installer mid-copy and leaves a partially-populated live. Redirect to a file instead: npm run update > update.log. A re-run is idempotent and repairs a partial live. update also verifies the repo is fresh against origin before deploying (--skip-freshness-check for an explicit offline/intentional derogation — announced, never silent).

3. Initialize a project

cd my-project
~/.config/opencode-config/scripts/init-project.sh
# preview without changing anything: add --dry-run

Result:

my-project/
├── AGENTS.md
└── docs/
    └── ai/
        ├── PLAN.md       → current technical plan
        ├── STATUS.md     → progress state
        ├── DECISIONS.md  → structural decisions
        ├── CHANGELOG.md  → session history
        ├── BUFFER.md     → session buffer
        ├── INDEX.md      → project map
        └── WARNINGS.md   → alerts and technical debt

4. Sync templates in an existing project

~/.config/opencode-config/scripts/sync-project.sh
# preview without changing anything: add --dry-run

Never overwrites existing files: it creates .new files (or timestamped files) that you merge manually.

Operational in minutes.

Table of contents


Agent State Layer

AI agents lose context at every new session. This repository solves that with a persistent memory layer:

DocumentProblem solved
BUFFER.mdSession interruptions — recovery snapshot
INDEX.mdWasted reads — project mapped at a glance
WARNINGS.mdRegressions — active alerts before any change
STATUS.mdContinuity — progress state across sessions
PLAN.mdDirection — current technical plan
DECISIONS.mdTraceability — justified structural decisions
CHANGELOG.mdHistory — dated session log, consulted on suspected regression

Session cycle (review and verification run in parallel):

EXPLORER → PLAN → IMPLEMENT → [PARALLEL GATE: REVIEW ∥ VERIFY] → COMMIT

With the PARALLEL GATE — adversarial review and build/lint/test verification running concurrently — mandatory before considering a task done.


Configuration

Environment variables

OpenCode does not load .env files: the {env:...} references in opencode.json only read the shell environment. Hence two locations:

  • Shell rc (block managed by setup.sh): the Infomaniak AI API key (single copy) and the iOS MCP IDB_* values, since the iOS MCP only reads its process environment (no .env fallback). The block is idempotent: pre-existing exports of these variables are moved into the block, never duplicated.
  • ~/.config/opencode/.env: variables read directly by the MCP servers and tools (internal fallback in their own code).
VariableLocationUsageRequired
OPENAI_API_KEY_INFOMANIAKshell rc (managed block)Infomaniak AI API keyYes
IDB_UDIDshell rc (managed block)iOS simulator UDID (ios-simulator MCP)No
IDB_PATHshell rc (managed block)idb binaries path (ios-simulator MCP)No
INFOMANIAK_API_TOKEN.envInfomaniak API token (infomaniak MCP — .env fallback)No
GITLAB_TOKENshell rc or .envGitLab token (angular-elements MCP — .env fallback)No
FIGMA_TOKEN.envFigma API token (figma-ds-sync skill — design system sync)No

setup.sh asks for these values interactively. For the .env variables (INFOMANIAK_API_TOKEN, FIGMA_TOKEN, ...), edit ~/.config/opencode/.env directly. For the API key and the IDB_* values, use setup.sh --force (Enter to keep, new value to replace) — or edit the managed block in the shell rc.

MCP Servers

The configuration includes seven MCP servers in opencode.json (six active — plus aurora-memory, intentionally closed and routed through an orchestrator-only plugin bridge):

MCP ServerRoleInstallation
chrome-devtoolsBrowsing, screenshots, Lighthouse audits, Chrome debugging (isolated headless browser)Auto-installed via npx on first launch
browser-debugConnects to a browser in debug mode (http://127.0.0.1:9222) — used by the ai-cowork skill (Aurora ↔ ChatGPT)Auto-installed via npx; requires a browser started in debug mode (see below)
ios-simulatoriOS simulator interaction (tap, swipe, screenshots, UI tree)Optional — requires idb-companion + fb-idb
context7Up-to-date library and framework documentationAuto-installed via npx
infomaniakInfomaniak API — radio, VOD, newsletter, DNS, events, AI. Read-only by default (write gate): mutations go through the orchestrator-only infomaniak_api_call bridgeLocal (see mcp/infomaniak/README.md)
aurora-memoryPersonal memory service (knowledge graph, facts, goals, events) — closed as an MCP (enabled: false): the only access path is the orchestrator-only aurora_memory bridge pluginLocal (aurora-core)
angular-elementsAngular Elements design system — components, API, storiesLocal (see mcp/angular-elements/README.md)

chrome-devtools-mcp

No manual installation needed. The chrome-devtools-mcp package is downloaded automatically by npx on first call.

Two instances coexist (tools prefixed with the server name):

  • chrome-devtools_* — isolated headless (Designer, audits)
  • browser-debug_* — connected to http://127.0.0.1:9222 (ai-cowork skill)

For debug mode (persistent browser session, ChatGPT login preserved):

"/Applications/Brave Browser.app/Contents/MacOS/Brave Browser" \
  --remote-debugging-port=9222 \
  --user-data-dir="$HOME/.config/opencode/brave-debug-profile"

The dedicated --user-data-dir is mandatory (Chromium ≥136 ignores --remote-debugging-port on the default profile).

ios-simulator-mcp (macOS only)

This MCP requires 3 external dependencies:

DependencyInstallation
XcodeApp Store (required for xcrun simctl)
idb-companionbrew tap facebook/fb && brew install idb-companion
fb-idbpython3 -m venv ~/.local/idb-venv && ~/.local/idb-venv/bin/pip install fb-idb

setup.sh offers to install these dependencies automatically. If you decline or are on Linux, the MCP stays configured in opencode.json but will fail at runtime — you can disable it by setting "enabled": false.

Related environment variables (shell rc, block managed by setup.sh — the ios-simulator MCP does not read .env):

VariableUsage
IDB_UDIDTarget iOS simulator UDID (auto-detected by setup.sh)
IDB_PATHPath to the idb binaries (default: ~/.local/idb-venv/bin:...)

What gets installed

~/.config/opencode/
├── agents/                    # AI personalities
├── standards/                 # Universal behaviors
├── frameworks/                # Per-stack technical rules
├── opencode.json              # Main config (providers, models, permissions, MCP)
├── oh-my-opencode-slim.json   # Subagent presets
├── package.json               # Plugin dependencies
├── plugins/
│   ├── rtk.ts                 # RTK plugin (token savings)
│   ├── infomaniak-bridge.ts   # Orchestrator-only write bridge (Infomaniak API)
│   ├── product-authority.ts   # Product-authority controller (3 tools, fail-closed)
│   └── aurora-memory.ts       # Personal memory bridge (orchestrator-only)
├── .env                       # Secrets (never versioned)
└── .env.example               # Environment variable template

Models and Fallback

The table below describes the maintainer's reference setup (Infomaniak AI). If you use other providers — Claude (Anthropic), GPT (OpenAI), Gemini (Google), OpenRouter or a local Ollama — run scripts/configure-models.sh: it discovers which models your keys can actually use (real probes, no catalog guesswork), maps them to the same agent roles, and rewrites the config while preserving every already-verified selection. A transient outage never triggers a durable reconfiguration.

14 configured models

The configuration uses 13 models across 5 categories:

CategoryModelsMax contextCost (input/output)Usage
Experteuria-code (GLM-5.2)250k$0.60 / $3.00Complex reasoning, architecture, security, review, code
euria-code-tiny200k$0.30 / $0.40Lightweight version of euria-code, multimodal (image)
IntermediateMistral-Small-4 (119B)256k$0.20 / $0.75Commits, CLI skills, technical SEO, content
Kimi-K2.6256k$0.60 / $3.00Large-context fallback
Qwen3.5-397B204k$0.80 / $3.60Native multimodal (image+video), available on request
Qwen3.8-27B100k$0.80 / $3.60Intermediate Qwen, ultimate fallback
LightMinistral-3 (14B)80k$0.30 / $0.40Light model — plugin agents explorer/librarian only
Gemma-4-31B100k$0.20 / $0.40General tasks
Apertus-70B100k$0.70 / $2.50General tasks
EmbeddingQwen3-Embedding-8B32k$0.01 / $0Vectorization (recommended)
bge_multilingual_gemma28k$0.01 / $0Multilingual FR/EN
mini_lm_l12_v2512$0.005 / $0Short texts
Transcriptionwhisper448k$0.006 / $0Audio → text

Automatic fallback

When a prompt exceeds a model's context limit, OpenCode switches automatically to a model with more context. Notable chains:

Ministral-3 (80k)      → Mistral-Small-4 (256k) → Kimi-K2.6 → Qwen3.8-27B (100k)
euria-code (250k)      → Kimi-K2.6 (256k)       → Qwen3.8-27B (100k)
Gemma-4 (100k)         → Mistral-Small-4 (256k) → Kimi-K2.6 → Qwen3.8-27B (100k)
Qwen3.5-397B (204k)    → Kimi-K2.6 (256k)       → Qwen3.8-27B (100k)

Note (2026-10-27 catalog sync): the ultimate fallback is now Qwen3.8-27B (100k context) — Nemotron-3-Nano (1M) and Qwen3.5-122B were removed from the Infomaniak catalogue. The last fallback hop shrinks context instead of extending it.

Agent assignment

AgentModelWhy
aurora, architect, security, cybersec, reviewer, atlas, sage, mobile, tester, beacon, crawler, build, planeuria-code (GLM-5.2)Expert reasoning, code, security, native 1M long-context
aurora-heavy, designer, visionQwen3.5-397BNative multimodal (image+video), screenshot and mockup analysis
echo, scribe, pulseMistral-Small-4 (119B)Good cost/performance/creativity balance
sparkKimi-K2.6Commits, CLI skills — 256k context avoids the compaction loop
oracle (plugin)euria-code (high variant)Strategic advisory, adversarial review
fixer (plugin)Qwen3.8-27BFast spec execution
explorer, librarian (plugin)Ministral-3 (14B)Fast codebase / external docs search

Project Memory

Aurora automatically detects the docs/ai/ folder at the project root at the start of every session.

Automatic read at bootstrap

If docs/ai/ exists, Aurora immediately loads:

  1. STATUS.md — current state, blockers, next step
  2. PLAN.md — current technical plan
  3. WARNINGS.md — active alerts and risk zones
  4. INDEX.md — project map

Conditional reads

  • BUFFER.md: loaded only when resuming an interrupted session, when STATUS.md reports a blocker, or when the user explicitly asks to resume a task.
  • DECISIONS.md: consulted JIT (Just-In-Time) when a structural decision, a contradiction or an architecture overhaul is detected.
  • CHANGELOG.md: consulted JIT when a regression is suspected or the user asks for history.

Why .new files are never read

During a sync (sync-project.sh), existing files are not overwritten. The script generates .new files as update proposals, or .new.YYYYMMDD-HHMMSS if a proposal already exists. OpenCode never reads .new files automatically. They must be merged manually into the official files.

Existing Project Adoption Checklist

To adopt project memory on an existing project that already has docs/ai/:

  1. Run init-project.sh in the existing project.
  2. Check the files created in docs/ai/.
  3. Compare any generated .new files.
  4. Manually merge the useful sections.
  5. Delete the .new files once processed.
  6. Start OpenCode with Aurora.
  7. Verify that Aurora announces the detected project memory.

Releases & versioning

Semantic versioning is automated by release-please:

  • Conventional Commits drive the next version: feat: → minor, fix: → patch, feat!: / BREAKING CHANGE: → major (docs:/chore: alone → no release).
  • Every merge to main updates (or creates) a Release PR (bumps package.json, writes the semantic CHANGELOG.md). Merging that Release PR tags vX.Y.Z and publishes a GitHub Release — the human merge is the only publish trigger.
  • npm run health-check verifies the declared version stays coherent with the release-please manifest.
  • Pre-semantic historical entries (date-based journal) are archived in docs/CHANGELOG-dates.md.

Architecture

Global Configuration
        ↓
     Standards    (workflow, memory-session-flow, memory-auto-update, memory-checklist, verification, communication, escalation, commits, review-before-done, audit, exploration-limits, error-correction, anti-patterns, artifact-authoring, delegation-failure, agent-output, product-authority)
        ↓
          Agents       (aurora, aurora-heavy, reviewer, tester, security, cybersec, architect, spark, vision, atlas, crawler, sage, scribe, pulse, echo, beacon, designer, mobile, product-owner) + plugin (explorer, fixer, librarian, oracle)
        ↓
    Frameworks     (angular-20, nodejs, nestjs, astro...)
        ↓
 Project AGENTS.md (local source of truth)
        ↓
   Project Docs    (PLAN, STATUS, DECISIONS, CHANGELOG, BUFFER, INDEX, WARNINGS)

Standards: universal behaviors applicable to any project. Agents: specialized personalities for specific tasks. Frameworks: technical rules per stack (Angular, Node.js, NestJS, Astro). Project AGENTS.md: ultimate source of truth, local always takes precedence. Project Docs: persistent session memory across AI conversations.


How to use it

After installation, the Aurora agent (main) automatically loads:

1. Global standards (workflow, communication, verification...)
2. Global agents (aurora, aurora-heavy, reviewer, tester, security, cybersec, architect, spark, vision, atlas, crawler, sage, scribe, pulse, echo, beacon, designer, mobile, product-owner) + plugin agents (explorer, fixer, librarian, oracle)
3. Targeted framework (Angular 20+, Node.js, etc.)
4. Company standards (if configured)
5. Local AGENTS.md + docs/ai/

The golden rule: local always takes precedence. The AGENTS.md at the project root is the ultimate source of truth.


How to customize

Customize the agents

Edit the files in the cloned repo, then run npm run update (or ./scripts/install.sh).

The available agents live in agents/:

AgentRole
aurora.mdMain agent — loading and coordination
aurora-heavy.mdAgent for complex tasks (euria-code)
reviewer.mdStrict code review
tester.mdQuality tests
security.mdDefensive cybersecurity — AppSec, threat modeling, secure code review, DevSecOps, hardening
cybersec.mdOffensive cybersecurity — pentest, Red Team, exploitation, recon, bypass, privesc
architect.mdTechnical breakdown
spark.mdLightweight subagent (commit, MR)
vision.mdMultimodal subagent (images, screenshots)
atlas.mdSEO Strategy — strategy, keyword research, content gaps
crawler.mdTechnical SEO — technical SEO audit and fixes
sage.mdAIO / GEO — optimization for generative search engines
scribe.mdSEO Content — editorial production and optimization
pulse.mdGrowth Marketing — acquisition, conversion, funnel
echo.mdSocial Distribution — multi-channel distribution
beacon.mdAnalytics — SEO and marketing measurement
designer.mdUX/UI Designer — interface design, art direction, design system, accessibility (2 modes: standalone / Infomaniak DS)
mobile.mdMobile Engineer — iOS, Android, React Native, Flutter
product-owner.mdDelegated Product Owner — proposes product decisions, never ratifies (see standards/product-authority.md)

Agents provided by the plugin oh-my-opencode-slim (config config/oh-my-opencode-slim.json): explorer (codebase search), fixer (fast spec execution), librarian (external docs search), oracle (strategic technical advisory, adversarial review).

Add a framework

Create a frameworks/<my-framework>.md file in the repo:

frameworks/
├── angular-20.md   # Angular 20+ stand-alone
├── nodejs.md       # Node.js API / Express
├── nestjs.md       # Modular NestJS architecture
└── astro.md        # Astro static sites, SEO, i18n

The file name becomes the framework name. Run npm run update (or ./scripts/install.sh) to deploy it.

Create a new rule

  1. In the ~/.config/opencode-config repo
  2. Create a file in standards/ (universal) or agents/ (specialized role)
  3. Run npm run update (or ./scripts/install.sh)
  4. Reference it in the AGENTS.md of the relevant project

Customize the session workflow

Edit standards/workflow.md and standards/memory-session-flow.md to adapt the work cycle and session memory handling.

Adapt a project's stack

The AGENTS.md template is intentionally generic. Add the useful stack conventions to the local AGENTS.md, or reference a global framework:

  • frameworks/angular-20.md
  • frameworks/nodejs.md
  • frameworks/nestjs.md
  • frameworks/astro.md

Documentation

GuideContent
WorkflowHow the work cycle works, step by step
CustomizationHow to customize and extend (agents, standards, frameworks)
ArchitectureHow the configuration layers fit together
Angular 20Detailed Angular 20+ rules
Code reviewCode review guide
TestingTesting guide
ExamplesReady-to-use projects: Angular app, Node API, monorepo

FAQ

The configuration is developed on macOS. The core (OpenCode, agents, standards, frameworks) is cross-platform (Node.js 18+). Two macOS-specific parts: rtk installs via Homebrew (manual install on Linux) and the ios-simulator MCP requires Xcode — set "enabled": false for this MCP on Linux.

In ~/.config/opencode/.env (permissions 600, never versioned) for the MCP tools, and in the managed block of your shell rc for the Infomaniak AI API key — never in opencode.json and never committed. See Configuration.

npm run health-check           # config consistency (JSON, agents, models, test suites)
npm run permissions            # agent permissions matrix
npm run validate-memory        # docs/ai/ structure of a project
npm run mcp-lock               # lock local MCP dependencies (supply-chain hardening)
npm run test:product-authority # product-authority behavioral invariants

The project memory (docs/ai/, AGENTS.md) and the conventions (standards, frameworks) are agent-agnostic and readable by any AI tool. The agents and skills themselves are OpenCode-format.

GitHub rejects pushes with payloads over 1 MiB (default http.postBuffer). Fix: git config http.postBuffer 157286400, then push again. Always verify with git ls-remote origin main — a misleading "Everything up-to-date" can follow a failed push.


Repository structure

aurora-ai/
│
├── README.md
├── LICENSE
├── CHANGELOG.md
│
├── config/                     OpenCode config (versioned, no secrets)
│   ├── opencode.json             Providers, models, permissions, MCP servers
│   ├── oh-my-opencode-slim.json  Subagent presets (euria-code)
│   ├── package.json              @opencode-ai/plugin dependency
│   ├── .env.example              Environment variable template
│   ├── plugins/
│       ├── rtk.ts                RTK plugin (token savings via rtk rewrite)
│       ├── infomaniak-bridge.ts  Orchestrator-only write bridge (Infomaniak API)
│       ├── product-authority.ts  Product-authority controller (3 tools, fail-closed)
│       └── aurora-memory.ts      Personal memory bridge (orchestrator-only)
│
├── standards/               Universal behaviors
│   ├── workflow.md            Explore→Plan→Implement→[PARALLEL GATE]→Commit cycle
│   ├── error-correction.md    Stop after 2 failures to avoid the spiral
│   ├── anti-patterns.md       Stop the 5 typical session patterns
│   ├── artifact-authoring.md  Create standards/agents/frameworks without duplicates
│   ├── delegation-failure.md  Mandatory procedure after subagent failure
│   ├── agent-output.md        Structured JSON output format for subagents
│   ├── audit.md               Multi-axis read-only audit
│   ├── review-before-done.md  Adversarial review before declaring done
│   ├── exploration-limits.md  Targeted exploration and subagents
│   ├── memory-session-flow.md     Automatic docs/ai/ reading order at session start
│   ├── memory-checklist.md        Memory checklist at session end
│   ├── memory-auto-update.md      Memory persistence standard
│   ├── product-authority.md       Delegated product authority (private registry, fail-closed)
│   ├── verification.md            Mandatory build/lint/test checks
│   ├── communication.md           Directness, ownership, pushback
│   ├── escalation.md              Blocker handling
│   └── commits.md                 Commit format and rules
│
├── agents/                  19 agent definitions (+ 7 council/meeting runtime seats)
│
├── frameworks/                Per-stack technical rules
│   ├── angular-20.md          Angular 20+ stand-alone conventions
│   ├── nodejs.md              Node.js API conventions
│   ├── nestjs.md              NestJS conventions
│   └── astro.md               Astro conventions
│
├── templates/                 What every project receives
│   ├── AGENTS.md              Root template for every project
│   ├── PLAN.md                Current technical plan
│   ├── STATUS.md              Progress state
│   ├── DECISIONS.md           Structural decisions
│   ├── CHANGELOG.md           Agent journal
│   └── project-docs/
│       ├── BUFFER.md          Session buffer
│       ├── INDEX.md           Project map
│       └── WARNINGS.md        Alerts and technical debt
│
├── examples/                  Ready-to-use examples
│   ├── angular-app/           Complete Angular 20+ project (AGENTS.md + docs/ai/)
│   ├── node-api/              Node.js API project (AGENTS.md + README)
│   └── monorepo/              Multi-package monorepo (AGENTS.md + README)
│
├── mcp/                       Local MCP servers
│   ├── infomaniak/            Infomaniak API (radio, VOD, newsletter, DNS, events, AI)
│   └── angular-elements/      Angular Elements design system (components, API, stories)
│
├── tools/                     Infrastructure CLIs (repo-only, not installed as agents)
│   └── figma-ds/              Infomaniak Figma design system sync CLI
│       ├── src/               Strict TypeScript (check / sync / diff / mapping)
│       ├── tests/             node:test suite (53 tests)
│       └── *-reference.json   Manual references (Figma families, ik-* components)
│
├── skills/                    Reusable skills
│   ├── accessibility/         Accessibility suite (17 orchestrated sub-skills: aria, contrast, focus, keyboard, forms…)
│   ├── ai-cowork/             Aurora ↔ ChatGPT co-working (autonomous review loop via browser-debug)
│   ├── allow-command/         Pre-approve shell commands in opencode.json
│   ├── antislop/               Anti-slop AI filter (38 rules, 3 tiers, Delivery Gate — vendored from miqdadbadjuber/anti-slop v3.2.21)
│   ├── antislop-code/          Code comment hygiene (remove AI-slop comments, keep valuable ones, never touch code)
│   ├── antislop-copywriting/   Copy & text anti-slop (headlines, CTAs, tone, anti-AI-writing patterns)
│   ├── antislop-ui/            UI/visual anti-slop (color, layout, components, motion)
│   ├── clonedeps/             Clone dependency sources to inspect library internals
│   ├── code-review/           Adversarial code review
│   ├── codemap/               Hierarchical code maps for unknown repos
│   ├── commit/                Commit messages (Infomaniak conventions)
│   ├── council/               Technical Council — 3 read-only deliberation seats + Decision Gate
│   ├── create-mr/             Merge request creation (scripts + tests)
│   ├── deepwork/              Orchestrated multi-phase workflow with review gates (heavy efforts)
│   ├── deployment-changelog/  Deployment changelog
│   ├── design-qa/              Design conformance QA (Design Contract, convergence loop, fail-closed gate)
│   ├── domain-language/        Project ubiquitous-language glossary (VALIDATED/CANDIDATE/AMBIGUOUS, extraction = proposal, canonical across worktrees)
│   ├── figma-ds-sync/         Infomaniak Figma design system sync (check/sync/diff/mapping)
│   ├── gitlab-ci/             GitLab CI/CD interaction (glab)
│   ├── gitlab-feature-planner/  GitLab issues from an estimation table + MR grouping suggestions
│   ├── gitlab-issues/         GitLab issue management (glab)
│   ├── gitlab-summary/        GitLab activity summary
│   ├── goals/                 Personal goals tracking (aurora-memory, orchestrator-only)
│   ├── image-transparent-background/  White background removal (ImageMagick)
│   ├── laravel-cruddy-by-design/  Strict RESTful Laravel controllers/routes (max 7 methods)
│   ├── loop-engineering/      Grill + Monitor runtime for engineering loops
│   ├── meeting/               Cross-functional pre-implementation gate (READY/CONDITIONAL/BLOCKED)
│   ├── mr-review/             MR review with inline comments
│   ├── mr-review-feedback/    Apply MR review feedback
│   ├── new-worktree/          Branch + worktree from a single intent (never destructive)
│   ├── oh-my-opencode-slim/   Configuration and tuning of the oh-my-opencode-slim plugin
│   ├── pre-mr-review/         Pre-MR quality review
│   ├── product-authority/     Delegated product authority (private registry, fail-closed authorization)
│   ├── radio-tag-genres/      Music genre tagging for radio playlists
│   ├── readme/                 README generation
│   ├── reflect/               Past session analysis → reusable skills/config
│   ├── release-smoke-test/    oh-my-opencode-slim release validation
│   ├── review-gap-analyzer/   Review feedback → AGENTS.md/pre-mr-review rule improvements
│   ├── simplify/              Code simplification without behavior change
│   ├── task-workflow/         Full task cycle from a Trello/GitLab URL (worktree → dev → QA → review → MR)
│   ├── translate-doc/         Documentation translation
│   ├── user-stories/          User story writing
│   ├── verification-planning/ Verification plan before non-trivial code changes
│   └── worktrees/             Git worktrees as isolated lanes (OMO protocol)
│
├── scripts/                   Automation
│   ├── setup.sh                Full installation (first time, interactive)
│   ├── install.sh              Install/update the global config (freshness guard before deploy)
│   ├── check-freshness.sh      Remote freshness verdict (PASS/BLOCK/UNVERIFIED, fetch-only)
│   ├── test-freshness.sh       Freshness guard suite (35 assertions, local git fixtures)
│   ├── configure-models.sh     Live-probe providers → agent role mapping (aurora-models.json)
│   ├── init-project.sh         Initialize a new project (stack auto-detection)
│   ├── sync-project.sh         Sync the templates
│   ├── health-check.sh         Check config consistency (JSON, agents, models, suites)
│   ├── permissions-matrix.sh   Generate an agent permissions table
│   ├── validate-memory.sh     Validate a project's docs/ai/ structure
│   ├── setup-mcp-lock.py       Local MCP npm lockfile (supply-chain hardening)
│   ├── memory-access-check.sh  Orchestrator-only memory bridge invariant check
│   ├── ui.sh                   Shared terminal UI helpers (animations, non-TTY aware)
│   ├── check-infomaniak-write-gate.mjs  Verify the Infomaniak MCP stays read-only
│   ├── test-product-authority.mjs       Product-authority behavioral invariant tests
│   ├── check-bash-ruleset-order.py      Bash ruleset ordering lint
│   ├── create-mr/              MR creation scripts (build_body, check_workspace, detect_target_branch, detect_template, push_branch, tests, upload_media, validate_title)
│   ├── lib/                    Shared shell helpers
│   └── hooks/
│       └── pre-commit-secrets.sh  Git hook against secret leaks
│
└── docs/                      User guides
    ├── ai/                   Repo project memory (PLAN, STATUS, DECISIONS, CHANGELOG, BUFFER, INDEX, WARNINGS)
    ├── workflow.md            How the work cycle works
    ├── customization.md        How to customize and extend
    ├── angular-20.md          Detailed Angular 20+ rules
    ├── code-review.md         Code review guide
    ├── testing.md             Testing guide
    └── architecture.md        Architecture guide

Priority order

The agent receives and applies in this order (from most general to most specific; the most specific wins):

  1. Global Standards ~/.config/opencode/standards/ (workflow, memory-session-flow, memory-auto-update, memory-checklist, verification, communication, escalation, commits, review-before-done, audit, exploration-limits, error-correction, anti-patterns, artifact-authoring, delegation-failure, agent-output, product-authority).
  2. Global Agents ~/.config/opencode/agents/ (aurora, aurora-heavy, reviewer, tester, security, cybersec, architect, spark, vision, atlas, crawler, sage, scribe, pulse, echo, beacon, designer, mobile, product-owner) + oh-my-opencode-slim plugin agents (explorer, fixer, librarian, oracle).
  3. Global Frameworks ~/.config/opencode/frameworks/ (angular-20, nodejs, nestjs, astro).
  4. Company standards (if configured).
  5. Project-local AGENTS.md.
  6. Explicit instructions of the current task.

Language policy

Public-facing documentation (this README, docs/, folder READMEs) is in English. The execution layer — agents/, standards/, frameworks/ and skill SKILL.md files — is written in French, the maintainer's working language. This is by design:

  • The agent runtime consumes these files language-agnostically — LLMs read French and English with identical fidelity, so behavior is unaffected.
  • Trigger keywords in agents/aurora.md are matched against the maintainer's French requests — translating them would silently break delegation routing.
  • Forking and using this setup does not require reading French; forking to edit the execution layer does, by design.

License

MIT

↑↓ navigate openesc close