Skip to content

afx decisions init: one command to turn on the Decisions tab #1840

Closed

Description

@waleedkadous

Problem

There is no way for an adopter to say "I want to use decisions". Turning the loop on today means finding section 4 of resources/decision-protocol.md (which an adopter cannot see in their repo until #1834 lands), copying its template into codev/state/pending-decisions.md by hand, and then knowing to tell the main architect to route asks through it. Nothing creates the file, and nothing prompts the architect.

Fix (AIR, design decided)

afx decisions init [--path <file>]

  • Writes the decisions file template and prints the path, that the Decisions tab appears within a few seconds, and the one sentence to tell the architect: "Route every ask for my word through the decisions file."
  • Target path: --path if given, else dashboard.decisionsFile from config, else codev/state/pending-decisions.md. Relative to the workspace root; refused if it resolves outside the workspace (same rule the tab applies).
  • Refuses, with a clear message, if the file already exists. No --force: an existing file holds the owner's rulings.
  • Creates codev/state/ if missing.

Template as code, doc pinned to it. The template text lives in one place in the decisions server module (e.g. servers/decisions/template.ts) and is what the command writes. decision-protocol-doc.test.ts asserts section 4's fenced template in the doc equals that constant, so the two cannot drift. The template is the one #1837 ships: title line, the rule-inline line, _Zone: UTC_, _Status: 0 open._, ## Open, ## Ruled.

Architect role, one sentence (both trees, keep the section at its current length): when the owner asks to use decisions, run afx decisions init and follow the doc.

Docs. The Decisions tab section of resources/commands/agent-farm.md (both trees) opens with the command as the way to turn the tab on. Section 4 of the protocol doc names the command above its template.

Testing

  • Unit tests for the command: creates the file with the template; refuses an existing file; honours --path and dashboard.decisionsFile; refuses a path outside the workspace.
  • Doc test: section 4 template equals the code constant.
  • Live check: run it in a workspace with the Tower running and confirm the tab appears without a reload.

Origin: owner's question on 2026-10-19, "how does someone say I want to use decisions?". Wanted before v3.3.6 publishes.

Activity

  1. added 4 commits that reference this issue on Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/towerArea: Tower server / agent farm CLI

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions