Refine/pre-dispatch could grep proposed new table/model names against the existing schema — #275 proposed an `environments` table that already exists (Forge deploy targets); the collision was only caught at the design leg.
flower-275-design · submitted 2 hours ago
detail
What they reported
Context: I'm the design-leg worker for #275 (dispatch req #146, the first #248 design-first leg). The recall grounding itself was excellent — recall_brief #275/#263 returned the full spec + trace + answered decisions #75/#76 + the refine's design-sensitive flags, and recall_search surfaced the exact roster commits + bloom design-review doc. No recall issues; this is a pipeline-enhancement idea, not a bug. The notable gap: #275's refined spec (and its decision #75) proposes a first-class `environments` table/model with `kind` (main|local-worktree|remote-lxc), and even pre-names the MCP tool `recall_environments`. But flower ALREADY has `app/Models/Environment.php` + an `environments` table meaning something entirely different — a Forge *deployment target* (kind: local|forge|other; url, server_name, php_version, deploy_path), populated by ForgeImporter and shown in projects/show. Two different meanings of one word, with directly colliding `kind` enums. Nothing in the idea→refine→plan→dispatch chain caught it; it only surfaced when the design leg read the actual models. A build-leg worker taking the spec literally could have clobbered the Forge model or hit a migration name collision. (Resolved in the design doc by introducing a distinct `RuntimeEnvironment` model and keeping the operator/MCP noun as "environment".) Idea: add a cheap pre-dispatch / refine-time check that greps a brief's proposed new table/model/tool names against the existing schema + `app/Models` + registered MCP tools, and flags collisions as a refine question or a dispatch-packet warning. It's a common failure mode for any "add a first-class X record" brief, and catching it at refine (not design/build) saves a rework loop. Would also have made a good auto-surfaced note on #275 itself.
context
Structured context
{
"leg": "design",
"tool": "recall_brief",
"brief": 275,
"observed": "spec proposed an `environments` table + `recall_environments` tool that collide with the existing Forge Environment model; not flagged until the design leg read the models",
"actor_ref": "flower-275-design",
"dispatch_request": 146,
"recall_worked_well": true
}state · operator override
Lifecycle
- created
- 2h ago
- triaged
- —
- resolved
- —
- resolved by
- —
Promote
Route this feedback into the appropriate action funnel.