/forge — Execution Primitive (Parameterized)
When /forge <task description> is invoked, the agent routes execution to the appropriate executor. This is NOT the seal — it is the action after /init and before /propose-seal.
Agent detection: Use $AGENT_RUNTIME env var or context to determine which variant applies. Values: hermes, openclaw, opencode.
Output format
FORGE ROUTED
────────────────────────────────────
Task: <task description>
Executor: <see Agent-Specific Bindings>
Authority: T1 (auto-mutate)
Risk: REVERSIBLE
────────────────────────────────────
Routing:
<see Agent-Specific Bindings>
────────────────────────────────────
Pre-check:
F1 AMANAH ✅ reversible path exists
F4 CLARITY ✅ ΔS measured before/after
F11 AUDIT ✅ (commit + receipt trail)
F13 SOVEREIGN ⚠️ (no F13 ack needed for T1)
────────────────────────────────────
→ Executing in background...
→ Receipt will be appended to session
→ /forge-status to check progress
DITEMPA BUKAN DIBERI 🔥
Agent-Specific Bindings
Hermes (AGENT_RUNTIME=hermes)
| Field |
Value |
| Executor options |
OpenCode-Zen (delegate_task), A-FORGE (forge_execute), Hermes (self-execute) |
| Code-gen routing |
delegate_task → opencode binary |
| Audit/verify routing |
Hermes self-execute with read-only tools |
| PDF generation |
Hermes self-execute via report generation |
| Actor label in receipt |
hermes-<executor> |
OpenClaw (AGENT_RUNTIME=openclaw)
| Field |
Value |
| Executor options |
OpenCode-Zen (spawn subagent), A-FORGE (forge_execute), OpenClaw (self-execute) |
| Code-gen routing |
spawn_opencode_subagent in temp worktree (/tmp/openclaw-worktree) |
| Audit/verify routing |
OpenClaw self-execute with verify tools |
| PDF generation |
OpenClaw self-execute via report generation |
| Actor label in receipt |
openclaw-<executor> |
OpenCode (AGENT_RUNTIME=opencode)
| Field |
Value |
| Executor |
OpenCode (self) — coding agent, always self-execute |
| Warga |
FI-001 PRIMARY |
| Extra gates |
LSP gate check (mandatory before commit) |
| Extra gates |
Test results must pass |
| Authority chain |
OpenCode-Zen → delegate_task from Hermes/OpenClaw → A-FORGE → git push → deploy guard |
| Actor label in receipt |
opencode-zen |
| Digital Ops Policy |
digital/code/AI/infra = MUBAH (auto-execute) per 2026-06-30 directive |
Task classification
| Task type |
Executor |
Pattern |
| Code generation / refactor |
OpenCode-Zen |
delegate_task (Hermes) / spawn subagent (OpenClaw) / self (OpenCode) |
| Code review |
Calling agent |
self-execute with read-only tools |
| Infra / deploy / restart |
A-FORGE |
call_aforge_execute (requires lease) |
| Audit / verification |
Calling agent |
self-execute with verify tools |
| F1-F13 constitutional |
888-HOLD |
route to propose-seal, not forge |
| PDF generation |
Calling agent |
self-execute via report generation |
T0-T3 Tier Classification (OpenCode primary, applies to all)
| Tier |
Examples |
Behavior |
| T0 |
Read, grep, git log, port check |
Auto-do, no announcement |
| T1 |
Edit, build, test, lint, format, commit, push, restart own session |
Auto-do, F2 evidence in commit body |
| T2 |
Multi-file refactor, new dependency, deploy after green tests |
Announce 10s window, then proceed |
| T3 |
rm -rf, DROP TABLE, force-push to main, paid API > $10/mo, F1-F13 changes |
888_HOLD — request sovereign ack |
Implementation
def forge_handler(task: str, agent_runtime: str):
"""Parameterized /forge handler"""
# 1. /init guard
envelope = read_federation_session()
if not envelope.get("session_id"):
return "ERROR: /init first. No session bound."
# 2. Classify tier
tier = classify_tier(task)
if tier == "T3":
return "🛑 888_HOLD — use /propose-seal for irreversible work"
# 3. Measure ΔS_before
entropy_before = measure_session_entropy()
# 4. Route to executor
executor = classify_task_executor(task, agent_runtime)
if agent_runtime == "opencode":
# OpenCode self-executes coding tasks
result = execute_coding_task(task)
# LSP gate check (mandatory before commit)
if not lsp_gate_passed(result):
return "🛑 LSP GATE FAILED — fix errors before commit"
elif agent_runtime == "openclaw":
if executor == "opencode":
result = spawn_opencode_subagent(
task=task,
worktree="/tmp/openclaw-worktree",
toolsets=["code", "terminal"],
timeout=300
)
elif executor == "aforge":
result = call_aforge_execute(task=task, lease_type="T1")
else:
result = self_execute(task)
elif agent_runtime == "hermes":
if executor == "opencode":
result = delegate_task(task=task, toolsets=["code", "terminal"], timeout=300)
elif executor == "aforge":
result = call_aforge_execute(task=task, lease_type="T1")
else:
result = self_execute(task)
# 5. Measure ΔS_after
entropy_after = measure_session_entropy()
delta_s = entropy_after - entropy_before
# 6. Build receipt
receipt = {
"ts": now_iso(),
"event": "FORGE_EXECUTED",
"actor": f"{agent_runtime}-{executor}",
"session": envelope["session_id"],
"task": task,
"result_summary": summarize(result),
"delta_s": delta_s,
"evidence_hash": sha256_of_result(result),
}
# 7. Return with receipt
return render_forge_result(receipt)
Doctrine
/forge = the action layer between /init and /propose-seal
/forge is NOT the seal — seal is /propose-seal → 888-APEX
/forge is the "go execute" that happens AFTER /init establishes identity
- F1 reversibility is the hard gate — if ΔS > 0, HALT and HOLD
- F11 audit — every /forge appends a receipt to the session
- F13 sovereignty — T3 requires Arif's ack, no exceptions
ZEN
/init = WHO AM I?
/forge = GO DO IT
/propose-seal = RECORD IT PERMANENTLY
Together:
/init → /forge → /propose-seal
The forge cycle:
identity → action → evidence → verdict → permanent record
Without /init: /forge has no actor context
Without /forge: /propose-seal has nothing to seal
Without /propose-seal: /forge result is temporary
Error states
| Condition |
Response |
| No /init called |
ERROR: /init first. No session bound. |
| Task classified T3 |
🛑 888_HOLD — use /propose-seal for irreversible work |
| LSP gate failed (OpenCode) |
🛑 LSP GATE FAILED — fix errors before commit |
| Test failures (OpenCode) |
🛑 TESTS FAILED — fix or HOLD before commit |
| ΔS > 0 after execution |
🛑 F1 VIOLATION — ΔS positive. Rollback initiated. |
| A-FORGE unreachable |
⚠️ A-FORGE offline. Self-executing within agent authority. |
| OpenCode busy (max 3 concurrent) |
⏳ Queue full. /forge queued — priority = NORMAL |
| Commit blocked (deploy guard) |
⛔ deploy guard — local HEAD ahead of origin. Push first. |
1---2name: substrate-forge3description: "/forge — routes execution to A-FORGE or a coding runtime. The execution primitive after /init establishes identity and /propose-seal establishes evidence. /forge = 'go execute this mutation under my authority.' Parameterized across Hermes, OpenClaw, and OpenCode runtimes."4tags: [forge, execution, coding-agent, telegram-native, hermes, openclaw, opencode]5license: MIT6capability_tier: fed-agent-subagent7ecology_state: WARM8supersedes: [hermes-forge, openclaw-forge, opencode-forge]9---1011# /forge — Execution Primitive (Parameterized)1213When `/forge <task description>` is invoked, the agent routes execution to the appropriate executor. This is NOT the seal — it is the action after /init and before /propose-seal.1415**Agent detection:** Use `$AGENT_RUNTIME` env var or context to determine which variant applies. Values: `hermes`, `openclaw`, `opencode`.1617## Output format1819```20FORGE ROUTED21────────────────────────────────────22Task: <task description>23Executor: <see Agent-Specific Bindings>24Authority: T1 (auto-mutate)25Risk: REVERSIBLE26────────────────────────────────────27Routing:28 <see Agent-Specific Bindings>29────────────────────────────────────30Pre-check:31 F1 AMANAH ✅ reversible path exists32 F4 CLARITY ✅ ΔS measured before/after33 F11 AUDIT ✅ (commit + receipt trail)34 F13 SOVEREIGN ⚠️ (no F13 ack needed for T1)35────────────────────────────────────36→ Executing in background...37→ Receipt will be appended to session38→ /forge-status to check progress3940DITEMPA BUKAN DIBERI 🔥41```4243## Agent-Specific Bindings4445### Hermes (`AGENT_RUNTIME=hermes`)4647| Field | Value |48|-------|-------|49| Executor options | OpenCode-Zen (delegate_task), A-FORGE (forge_execute), Hermes (self-execute) |50| Code-gen routing | `delegate_task` → opencode binary |51| Audit/verify routing | Hermes self-execute with read-only tools |52| PDF generation | Hermes self-execute via report generation |53| Actor label in receipt | `hermes-<executor>` |5455### OpenClaw (`AGENT_RUNTIME=openclaw`)5657| Field | Value |58|-------|-------|59| Executor options | OpenCode-Zen (spawn subagent), A-FORGE (forge_execute), OpenClaw (self-execute) |60| Code-gen routing | `spawn_opencode_subagent` in temp worktree (`/tmp/openclaw-worktree`) |61| Audit/verify routing | OpenClaw self-execute with verify tools |62| PDF generation | OpenClaw self-execute via report generation |63| Actor label in receipt | `openclaw-<executor>` |6465### OpenCode (`AGENT_RUNTIME=opencode`)6667| Field | Value |68|-------|-------|69| Executor | OpenCode (self) — coding agent, always self-execute |70| Warga | FI-001 PRIMARY |71| Extra gates | LSP gate check (mandatory before commit) |72| Extra gates | Test results must pass |73| Authority chain | OpenCode-Zen → delegate_task from Hermes/OpenClaw → A-FORGE → git push → deploy guard |74| Actor label in receipt | `opencode-zen` |75| Digital Ops Policy | digital/code/AI/infra = MUBAH (auto-execute) per 2026-06-30 directive |7677## Task classification7879| Task type | Executor | Pattern |80|---|---|---|81| Code generation / refactor | OpenCode-Zen | delegate_task (Hermes) / spawn subagent (OpenClaw) / self (OpenCode) |82| Code review | Calling agent | self-execute with read-only tools |83| Infra / deploy / restart | A-FORGE | call_aforge_execute (requires lease) |84| Audit / verification | Calling agent | self-execute with verify tools |85| F1-F13 constitutional | 888-HOLD | route to propose-seal, not forge |86| PDF generation | Calling agent | self-execute via report generation |8788## T0-T3 Tier Classification (OpenCode primary, applies to all)8990| Tier | Examples | Behavior |91|---|---|---|92| **T0** | Read, grep, git log, port check | Auto-do, no announcement |93| **T1** | Edit, build, test, lint, format, commit, push, restart own session | Auto-do, F2 evidence in commit body |94| **T2** | Multi-file refactor, new dependency, deploy after green tests | Announce 10s window, then proceed |95| **T3** | rm -rf, DROP TABLE, force-push to main, paid API > $10/mo, F1-F13 changes | 888_HOLD — request sovereign ack |9697## Implementation9899```python100def forge_handler(task: str, agent_runtime: str):101 """Parameterized /forge handler"""102103 # 1. /init guard104 envelope = read_federation_session()105 if not envelope.get("session_id"):106 return "ERROR: /init first. No session bound."107108 # 2. Classify tier109 tier = classify_tier(task)110 if tier == "T3":111 return "🛑 888_HOLD — use /propose-seal for irreversible work"112113 # 3. Measure ΔS_before114 entropy_before = measure_session_entropy()115116 # 4. Route to executor117 executor = classify_task_executor(task, agent_runtime)118119 if agent_runtime == "opencode":120 # OpenCode self-executes coding tasks121 result = execute_coding_task(task)122 # LSP gate check (mandatory before commit)123 if not lsp_gate_passed(result):124 return "🛑 LSP GATE FAILED — fix errors before commit"125 elif agent_runtime == "openclaw":126 if executor == "opencode":127 result = spawn_opencode_subagent(128 task=task,129 worktree="/tmp/openclaw-worktree",130 toolsets=["code", "terminal"],131 timeout=300132 )133 elif executor == "aforge":134 result = call_aforge_execute(task=task, lease_type="T1")135 else:136 result = self_execute(task)137 elif agent_runtime == "hermes":138 if executor == "opencode":139 result = delegate_task(task=task, toolsets=["code", "terminal"], timeout=300)140 elif executor == "aforge":141 result = call_aforge_execute(task=task, lease_type="T1")142 else:143 result = self_execute(task)144145 # 5. Measure ΔS_after146 entropy_after = measure_session_entropy()147 delta_s = entropy_after - entropy_before148149 # 6. Build receipt150 receipt = {151 "ts": now_iso(),152 "event": "FORGE_EXECUTED",153 "actor": f"{agent_runtime}-{executor}",154 "session": envelope["session_id"],155 "task": task,156 "result_summary": summarize(result),157 "delta_s": delta_s,158 "evidence_hash": sha256_of_result(result),159 }160161 # 7. Return with receipt162 return render_forge_result(receipt)163```164165## Doctrine166167- `/forge` = the action layer between /init and /propose-seal168- `/forge` is NOT the seal — seal is /propose-seal → 888-APEX169- `/forge` is the "go execute" that happens AFTER /init establishes identity170- F1 reversibility is the hard gate — if ΔS > 0, HALT and HOLD171- F11 audit — every /forge appends a receipt to the session172- F13 sovereignty — T3 requires Arif's ack, no exceptions173174## ZEN175176```177/init = WHO AM I?178/forge = GO DO IT179/propose-seal = RECORD IT PERMANENTLY180181Together:182 /init → /forge → /propose-seal183184The forge cycle:185 identity → action → evidence → verdict → permanent record186187Without /init: /forge has no actor context188Without /forge: /propose-seal has nothing to seal189Without /propose-seal: /forge result is temporary190```191192## Error states193194| Condition | Response |195|---|---|196| No /init called | `ERROR: /init first. No session bound.` |197| Task classified T3 | `🛑 888_HOLD — use /propose-seal for irreversible work` |198| LSP gate failed (OpenCode) | `🛑 LSP GATE FAILED — fix errors before commit` |199| Test failures (OpenCode) | `🛑 TESTS FAILED — fix or HOLD before commit` |200| ΔS > 0 after execution | `🛑 F1 VIOLATION — ΔS positive. Rollback initiated.` |201| A-FORGE unreachable | `⚠️ A-FORGE offline. Self-executing within agent authority.` |202| OpenCode busy (max 3 concurrent) | `⏳ Queue full. /forge queued — priority = NORMAL` |203| Commit blocked (deploy guard) | `⛔ deploy guard — local HEAD ahead of origin. Push first.` |