# Intent-Based Scripting Languages Survey — Implementation Plan

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** Produce the report at `conductor/tracks/intent_dsl_survey_20260612/report.md` (7 sections, ~3500-5000 lines) surveying intent-based scripting languages and proposing a 4-tier vocab for a Meta-Tooling-facing intent DSL. Research-only — no `src/` code, no tests, no `pyproject.toml` changes.

**Architecture:** The track produces 1 markdown file in `docs/ideation/`. The 7 sections are written sequentially across 3 self-directed phases (1-3) plus 1 user-approval phase (4). Each phase ends with a checkpoint commit. The user sees only the final report and either approves (commit + register in `tracks.md`) or iterates.

**Tech Stack:** Markdown only. No new code, no new dependencies, no new tests.

**Time-sensitivity:** Per the user, the report must complete before nagent v2.2. Phases 1-3 are self-directed; only phase 4 requires user input. The plan can be paused at any phase boundary without losing work.

**Source of truth:** `conductor/tracks/intent_dsl_survey_20260612/spec.md` (the approved spec, commit `b389f1be`). All 7 sections, all verbs, all file:line references, all 12 verification criteria are detailed there. The plan executes the spec; it does not redefine it.

---

## File Structure

This track creates/modifies the following files:

| File | Action | Purpose |
|---|---|---|
| `conductor/tracks/intent_dsl_survey_20260612/report.md` | **Create** | The report. ~3500-5000 lines, 7 sections, 1 appendix. |
| `conductor/tracks/intent_dsl_survey_20260612/state.toml` | **Create** | State file per `conductor/workflow.md` template. |
| `conductor/tracks/intent_dsl_survey_20260612/metadata.json` | **Create** | Track metadata per spec §1. |
| `conductor/tracks.md` | **Modify** | Register track as completed after phase 4. |

**Decomposition rationale:** The report is 1 file because the 7 sections form a single coherent argument (philosophy → prior art → grammar → vocab → hardware → AI-agent → open questions). Splitting into multiple files would break the argument's continuity. The state.toml and metadata.json follow the project's track-folder convention (per `conductor/tracks/data_oriented_error_handling_20260606/`).

---

## Phase 1: Source Gathering + Outline

### Task 1: Read all 8 prior-art sources end-to-end

**Files:**
- Read (do not modify): the 8 sources listed in `conductor/tracks/intent_dsl_survey_20260612/spec.md` §13.3

- [ ] **Step 1: Read the 4 Onat/Lottes reference files in `C:\projects\forth\bootslop\references\`**

Read in order:
- `kyra_in-depth.md` (86 lines) — Onat's 2-register stack, magenta pipe, basic blocks/lambdas
- `forth_day_2020_in-depth.md` (58 lines) — Onat's ColorForth + SPIR-V
- `neokineogfx_in-depth.md` (62 lines) — Lottes's x68/5th, folded interpreter, annotation overlay
- `blog_in-depth.md` (97 lines) — Lottes's full source-less evolution, "Ear" + "Toe"
- `Architectural_Consolidation.md` (44 lines) — synthesis
- `X.com - Onat & Lottes Interaction 1.png.ocr.md` (113 lines) — direct quotes from the X.com thread

- [ ] **Step 2: Read the CoSy pages**

Fetch `https://cosy.com/CoSy/Simplicity.html` and `https://cosy.com/4thCoSy/`. If a local copy is preferred, the Simplicity page's key claims (3-cell header, modulo indexing, "extensive vocabulary evolved from APL via K") can be cited from memory of the fetch done during spec review.

- [ ] **Step 3: Read the Jofito sources**

- `docs/transcripts/Ddme7DwMQBI_jofito_jody_bruchon.txt` (428 lines) — full video transcript
- The Jofito README at `https://codeberg.org/jbruchon/jofito` — already fetched during spec review; the key claims (intent mapping engine, arena allocation, pipe coalescing) are in the transcript

- [ ] **Step 3: Read the O'Donnell pages**

Fetch `https://johno.se/book/imgui.html`, `https://johno.se/book/pitch.html`, `https://johno.se/book/immvc.html`, `https://johno.se/book/mvc.html`. The 4 claims (widgets are method invocations, "reads are free / writes are formalized", IEventTarget, no scene-graph abstractions) are the section 1 anchors.

- [ ] **Step 4: Read the project's nagent v2.1 report and the data_oriented_error_handling spec**

- `conductor/tracks/nagent_review_20260608/nagent_review_v2_1_20260612.md` §2.1, §2.2, §2.10 (4 memory dimensions, stable-to-volatile cache ordering, RAG integration discipline)
- `conductor/tracks/data_oriented_error_handling_20260606/spec.md` §3.3 (the `Result[T]` + `ErrorInfo` pattern)
- `docs/reports/computational_shapes_ssdl_digest_20260608.md` §1 (the 6 SSDL primitives + 7 modifiers)
- `docs/guide_meta_boundary.md` (Application vs Meta-Tooling split)
- `docs/guide_command_palette.md` (the 33 existing commands)
- `docs/guide_tools.md` (the 45+ MCP tools the DSL maps to)
- `docs/Readme.md` (the doc index for the bibliography)

- [ ] **Step 5: Take a 1-line note per source for the bibliography**

For each of the 8 prior-art source groups, note the single most important file:line or URL that other agents can cite. Example: "Onat KYRA: `kyra_in-depth.md:21-26` (the xchg trick)".

### Task 2: Create the track folder + state.toml + metadata.json

**Files:**
- Create: `conductor/tracks/intent_dsl_survey_20260612/state.toml`
- Create: `conductor/tracks/intent_dsl_survey_20260612/metadata.json`

- [ ] **Step 1: Create the state.toml per the template in `conductor/workflow.md`**

```toml
# Track state for intent_dsl_survey_20260612
# Updated by Tier 2 Tech Lead as tasks complete

[meta]
track_id = "intent_dsl_survey_20260612"
name = "Intent-Based Scripting Languages Survey"
status = "active"
current_phase = 0  # 0 = pre-Phase 1
last_updated = "2026-06-12"

[blocked_by]
# No blockers. Track is independent.

[phases]
phase_1 = { status = "pending", checkpointsha = "", name = "Source gathering + outline" }
phase_2 = { status = "pending", checkpointsha = "", name = "Write sections 1, 2, 3" }
phase_3 = { status = "pending", checkpointsha = "", name = "Write sections 4, 5, 6, 7" }
phase_4 = { status = "pending", checkpointsha = "", name = "Self-review + user review + commit" }

[tasks]
t1_1 = { status = "in_progress", commit_sha = "", description = "Read all 8 prior-art sources end-to-end" }
t1_2 = { status = "pending", commit_sha = "", description = "Create state.toml + metadata.json" }
t1_3 = { status = "pending", commit_sha = "", description = "Write 7-section outline stub" }
t1_4 = { status = "pending", commit_sha = "", description = "Phase 1 checkpoint commit" }
t2_1 = { status = "pending", commit_sha = "", description = "Write section 1 (philosophy)" }
t2_2 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 0 (O'Donnell)" }
t2_3 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 1 (Concatenative)" }
t2_4 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 2 (Array)" }
t2_5 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 3 (Intent-mapping)" }
t2_6 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 4 (Meta-Tooling DSLs)" }
t2_7 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 5 (SSDL)" }
t2_8 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 6 (Command Palette)" }
t2_9 = { status = "pending", commit_sha = "", description = "Write section 2 cluster 7 (Result)" }
t2_10 = { status = "pending", commit_sha = "", description = "Write section 3 (grammar)" }
t2_11 = { status = "pending", commit_sha = "", description = "Phase 2 checkpoint commit" }
t3_1 = { status = "pending", commit_sha = "", description = "Write section 4 Tier 1 (math)" }
t3_2 = { status = "pending", commit_sha = "", description = "Write section 4 Tier 2 (data pipeline)" }
t3_3 = { status = "pending", commit_sha = "", description = "Write section 4 Tier 3 (shell)" }
t3_4 = { status = "pending", commit_sha = "", description = "Write section 4 Tier 4 (AI-fuzzing tolerance)" }
t3_5 = { status = "pending", commit_sha = "", description = "Write section 5 (hardware mapping)" }
t3_6 = { status = "pending", commit_sha = "", description = "Write section 6 (AI-agent properties)" }
t3_7 = { status = "pending", commit_sha = "", description = "Write section 7 (open questions)" }
t3_8 = { status = "pending", commit_sha = "", description = "Phase 3 checkpoint commit" }
t4_1 = { status = "pending", commit_sha = "", description = "Self-review per brainstorming skill" }
t4_2 = { status = "pending", commit_sha = "", description = "User review" }
t4_3 = { status = "pending", commit_sha = "", description = "Apply user feedback (if any)" }
t4_4 = { status = "pending", commit_sha = "", description = "Final commit + git note" }
t4_5 = { status = "pending", commit_sha = "", description = "Update tracks.md to register track as completed" }

[verification]
phase_1_complete = false
phase_2_complete = false
phase_3_complete = false
phase_4_complete = false
all_7_sections_present = false
all_prior_art_cited = false
all_4_tier_verbs_complete = false
hardware_mapping_referenced = false
ai_agent_properties_referenced = false
section_7_has_6_open_questions = false
self_review_complete = false
user_approved = false
git_note_attached = false
tracks_md_registered = false
```

- [ ] **Step 2: Create the metadata.json per the existing track pattern**

```json
{
  "track_id": "intent_dsl_survey_20260612",
  "name": "Intent-Based Scripting Languages Survey",
  "created": "2026-06-12",
  "priority": "A (research)",
  "status": "active",
  "type": "research-only",
  "domain": "Meta-Tooling",
  "blocked_by": [],
  "deliverable": "conductor/tracks/intent_dsl_survey_20260612/report.md",
  "consumed_by": [
    "nagent v2.2 (Future-Track Candidate #4: Intent-based DSL)",
    "intent_dsl_for_meta_tooling_20260608_PLACEHOLDER (per mcp_architecture_refactor_20260606/spec.md §12.1)",
    "future interpreter prototype (follow-up B track)"
  ],
  "estimated_size": "3500-5000 lines",
  "time_sensitive": "Must complete before nagent v2.2 ships",
  "spec_commit": "b389f1be",
  "spec_path": "conductor/tracks/intent_dsl_survey_20260612/spec.md",
  "plan_path": "conductor/tracks/intent_dsl_survey_20260612/plan.md",
  "state_path": "conductor/tracks/intent_dsl_survey_20260612/state.toml"
}
```

- [ ] **Step 3: Commit the folder + state + metadata**

```bash
git add conductor/tracks/intent_dsl_survey_20260612/state.toml conductor/tracks/intent_dsl_survey_20260612/metadata.json
git commit -m "conductor(track): Add intent_dsl_survey_20260612 state + metadata"
```

### Task 3: Write the 7-section outline as a stub

**Files:**
- Create: `conductor/tracks/intent_dsl_survey_20260612/report.md`

- [ ] **Step 1: Create the file with the header + 7-section outline (1 paragraph per section)**

Use the following structure (one paragraph per section; the actual content gets written in phases 2-3):

```markdown
# Intent-Based Scripting Languages

**Track:** `intent_dsl_survey_20260612` (committed 2026-06-12)
**Date:** 2026-06-12
**Author:** Tier 2 Tech Lead
**Status:** Outline draft (phases 1-3 of 4)

> **What this is.** A survey of intent-based scripting languages as a design philosophy, plus a proposed vocabulary (~40 verbs across 4 tiers) for a Meta-Tooling-facing intent DSL. The report is the foundation document for the user's nagent v2.2 (its "Future-Track Candidate #4" section) and for the future interpreter prototype (follow-up B track).
>
> **What this is NOT.** Not an interpreter, not a bridge script, not Application-side function-calling, not XML/JSON record formats. The DSL is Meta-Tooling-side per `docs/guide_meta_boundary.md`.

---

## 1. The "Intent-Based" Design Philosophy

*[STUB: 4 anchor claims — O'Donnell immediate-mode as the anchor; Onat/Lottes hardware as the truth; CoSy open-vocabulary as the user surface; Jofito intent-mapping as the framing. ~2-3 pages.]*

## 2. Prior Art Survey (8 Clusters)

### Cluster 0 — Immediate-Mode Paradigm (philosophical anchor)
*[STUB: O'Donnell IMGUI/MVC. ~0.5-1 page.]*

### Cluster 1 — Concatenative (Forth family)
*[STUB: Forth, ColorForth, KYRA, x68, Joy, CoSy. ~1-1.5 pages.]*

### Cluster 2 — Array
*[STUB: APL, K, BQN, Uiua. ~0.5 page.]*

### Cluster 3 — Intent-Mapping
*[STUB: Jofito, jq, nagent tag [rejected], Wasm. ~0.5-1 page.]*

### Cluster 4 — Meta-Tooling DSLs and Agent-Facing Languages
*[STUB: mcp_dsl_20260606, nagent Bridge DSL, OpenAI/Anthropic. ~0.5 page.]*

### Cluster 5 — SSDL Shape Primitives
*[STUB: 6 primitives + 7 modifiers per SSDL digest. ~0.25 page.]*

### Cluster 6 — Project's Own Command DSL Precedents
*[STUB: 33 Command Palette commands. ~0.25 page.]*

### Cluster 7 — Data-Oriented Error Handling Convention
*[STUB: Result[T] + ErrorInfo per data_oriented_error_handling. ~0.25 page.]*

## 3. The Grammar

*[STUB: 14 primitives formalized from user's pseudocode, with ambiguity flags for `proc`, `++`, and `m[row][column]`. ~2-3 pages.]*

## 4. The 4-Tier Vocab (~40 Verbs)

### Tier 1 — Math (~10 verbs)
*[STUB: from user's pseudocode.]*

### Tier 2 — Data-Oriented Pipeline (~12 verbs)
*[STUB: Onat/Lottes/Jofito lineage.]*

### Tier 3 — Shell (~10 verbs)
*[STUB: the OS surface.]*

### Tier 4 — AI-Fuzzing Tolerance (~8 verbs)
*[STUB: the novel piece; sandbox/audit/didyoumean etc.]*

## 5. Hardware Mapping (4 Anchor Claims)

*[STUB: Onat/Lottes, O'Donnell, Forth/CoSy, APL/K. ~1-2 pages.]*

## 6. AI-Agent Properties (10 Claims)

*[STUB: tying the DSL to existing project architecture. ~2-3 pages.]*

## 7. Open Questions for Follow-up B (≥6)

*[STUB: for the interpreter prototype + placeholder connection. ~1-2 pages.]*

---

## Appendix: Bibliography

*[STUB: full file:line / URL references for all 8 prior-art clusters.]*
```

- [ ] **Step 2: Verify the outline structure**

Run:
```bash
wc -l conductor/tracks/intent_dsl_survey_20260612/report.md
grep -c "^## " conductor/tracks/intent_dsl_survey_20260612/report.md
grep -c "^### " conductor/tracks/intent_dsl_survey_20260612/report.md
```
Expected: ~70 lines, 7 `## ` headings (sections 1-7 + Appendix), ≥10 `### ` headings (clusters + tiers + claims).

- [ ] **Step 3: Phase 1 checkpoint commit**

```bash
git add conductor/tracks/intent_dsl_survey_20260612/report.md
git commit -m "docs(ideation): Add intent_dsl_survey_20260612 outline stub"
git notes add -m "intent_dsl_survey_20260612 Phase 1 checkpoint (outline)

Outline draft for the 7-section report. Sections 1-7 stubbed with
1 paragraph each; actual content to be written in phases 2-3.

Structure verified: 7 sections, 8 prior-art clusters, 4 vocab tiers,
4 hardware anchor claims, 10 AI-agent property claims.

Source gathering complete: 8 prior-art source groups read end-to-end.
Bibliography references all 8 in spec §13.3.

Next: phase 2 (write sections 1, 2, 3)." $(git log -1 --format=%H)
```

Update `state.toml`:
- `current_phase = 1`
- `phase_1 = { status = "completed", checkpointsha = "<commit-sha>", name = "Source gathering + outline" }`
- `t1_1` to `t1_4` = `completed` with `commit_sha` set

Commit the state update:
```bash
git add conductor/tracks/intent_dsl_survey_20260612/state.toml
git commit -m "conductor(track): Mark intent_dsl_survey_20260612 phase 1 complete"
```

---

## Phase 2: Write Sections 1, 2, 3

### Task 4: Write section 1 (the philosophy)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 1

- [ ] **Step 1: Replace the section 1 stub with the 4 anchor claims**

Write the 4 anchor claims (per spec §3.1):
1. "Intent-based means the user's words are declarative intent, not imperative commands" (Jofito's framing)
2. "The hardware is the truth" (Onat/Lottes; per `kyra_in-depth.md` and `neokineogfx_in-depth.md`)
3. "The pipeline is immediate-mode" (O'Donnell's "widgets are method invocations, not objects"; per `https://johno.se/book/imgui.html`)
4. "The vocabulary IS the user surface" (CoSy's open-vocabulary; per `https://cosy.com/CoSy/Simplicity.html`)

Each claim: 1-2 paragraphs. Section 1 total: ~200-400 lines.

- [ ] **Step 2: Cross-check the 4 claims against their cited sources**

- Claim 1 (Jofito): cite `docs/transcripts/Ddme7DwMQBI_jofito_jody_bruchon.txt` lines 270-280 (the "write the optimization once" thesis)
- Claim 2 (Onat/Lottes): cite `C:\projects\forth\bootslop\references\kyra_in-depth.md:21-26` (the xchg trick) and `X.com - Onat & Lottes Interaction 1.png.ocr.md:80-86` (Lottes: "registers and globals and gotos, no stacks")
- Claim 3 (O'Donnell): cite `https://johno.se/book/imgui.html` "Immediate Mode applied" section
- Claim 4 (CoSy): cite `https://cosy.com/CoSy/Simplicity.html` "extensive vocabulary evolved from APL via K" paragraph

- [ ] **Step 3: Commit (not yet — wait for sections 2-3)**

Continue to next task. Sections 1-3 commit together at end of phase 2.

### Task 5: Write section 2 cluster 0 (O'Donnell)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 0

- [ ] **Step 1: Replace the cluster 0 stub**

The single entry: John O'Donnell, "IMGUI" / "The Pitch" / "MVC" (johno.se/book/*).

Per spec §3.2 cluster 0, write 2-3 sentences on the design idea, 2-3 sentences on what we take from it. Cite `https://johno.se/book/imgui.html` (IMGUI), `https://johno.se/book/pitch.html` (the pitch), `https://johno.se/book/mvc.html` (MVC, "reads are free / writes are formalized" / IEventTarget).

### Task 6: Write section 2 cluster 1 (Concatenative)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 1

- [ ] **Step 1: Replace the cluster 1 stub with 6 entries**

Per spec §3.2 cluster 1, write each of: Forth, ColorForth, KYRA, x68, Joy, CoSy.

For each:
- 2-3 sentences on the design idea
- 2-3 sentences on what we take from it
- Cite the specific source (Wikipedia for Forth, Onat's talks for KYRA, Lottes's blogs for x68, `https://cosy.com/CoSy/Simplicity.html` for CoSy)

### Task 7: Write section 2 cluster 2 (Array)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 2

- [ ] **Step 1: Replace the cluster 2 stub with 4 entries**

Per spec §3.2 cluster 2, write each of: APL, K, BQN, Uiua.

For each:
- 2-3 sentences on the design idea
- 2-3 sentences on what we take from it
- Cite the canonical source (Dyalog for APL, kx.com for K, Marshall Lochbaum's site for BQN, uiua.org for Uiua)

### Task 8: Write section 2 cluster 3 (Intent-Mapping)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 3

- [ ] **Step 1: Replace the cluster 3 stub with 4 entries**

Per spec §3.2 cluster 3, write each of: Jofito, jq, nagent's tag protocol (REJECTED), Wasm.

For each:
- 2-3 sentences on the design idea
- 2-3 sentences on what we take (or don't take) from it
- Cite: `docs/transcripts/Ddme7DwMQBI_jofito_jody_bruchon.txt` and `https://codeberg.org/jbruchon/jofito` for Jofito; the existing `nagent_takeaways_20260608.md` line 216-230 for the nagent tag protocol (with an explicit "we REJECT this XML-ish angle bracket approach" note)

### Task 9: Write section 2 cluster 4 (Meta-Tooling DSLs)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 4

- [ ] **Step 1: Replace the cluster 4 stub with 4 entries**

Per spec §3.2 cluster 4, write each of: `mcp_dsl_20260606` placeholder, nagent's Bridge DSL, OpenAI function-calling schema, Anthropic tool-use schema.

For each:
- 2-3 sentences on the design idea
- 2-3 sentences on what we take (or don't take) from it
- Cite: `mcp_architecture_refactor_20260606/spec.md` §12.1 for `mcp_dsl_20260606`; `nagent_takeaways_20260608.md` line 216-230 for the Bridge DSL; platform documentation URLs for OpenAI/Anthropic

### Task 10: Write section 2 cluster 5 (SSDL)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 5

- [ ] **Step 1: Replace the cluster 5 stub with the 6 SSDL primitives + 7 modifiers**

Per spec §3.2 cluster 5, the SSDL shape vocabulary is the meta-vocabulary used to annotate the verbs in section 4. Cite `docs/reports/computational_shapes_ssdl_digest_20260608.md` §1.

Include the table from the SSDL digest (6 primitives + 7 modifiers).

### Task 11: Write section 2 cluster 6 (Command Palette)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 6

- [ ] **Step 1: Replace the cluster 6 stub with the 33 existing commands + the "Everything" mode future work**

Per spec §3.2 cluster 6, the 33 Command Palette commands (per `docs/guide_command_palette.md`) are the project's existing vocabulary instincts. The DSL's verbs are a richer superset; "Everything" mode (per `guide_command_palette.md` line 383) is a near-term use case.

List 5-10 representative commands by category (View, Edit, Project, Layout, Theme, AI, Help) to make the cluster concrete without listing all 33.

### Task 12: Write section 2 cluster 7 (Result)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 2 cluster 7

- [ ] **Step 1: Replace the cluster 7 stub with the `Result[T]` + `ErrorInfo` pattern**

Per spec §3.2 cluster 7, the DSL's `try`/`recover`/`sandbox`/`didyoumean` verbs return `Result[T]`. The 12 `ErrorKind` values are the canonical error vocabulary. Cite `conductor/tracks/data_oriented_error_handling_20260606/spec.md` §3.3.

Include the 12 ErrorKind values and the `Result[T]` dataclass signature.

### Task 13: Write section 3 (the grammar)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 3

- [ ] **Step 1: Replace the section 3 stub with the 14-primitive grammar table + ambiguity flags + precedence rules**

Per spec §3.3:
- The 14 primitives table (with the user's pseudocode examples for each)
- The "Ambiguity flags" subsection (3 known issues: `proc` placement, `++col_offset` → `col_offset += 1`, `m[row][column]` → `m[row, col]`)
- Precedence rules (left-to-right for `->` chains, with `(` `)` for grouping)
- AI-fuzzing tolerance rules (CoSy-style modulo indexing, structured recovery anchors via `{ }`, line/offset independence)
- Error envelope: `try { ... } recover { ... }` returns `Result[T]`
- Block composition: `[ ]` (Onat's basic blocks), `{ }` (body blocks), `arena { }` (tape-drive regions)

### Task 14: Phase 2 checkpoint commit

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/state.toml`

- [ ] **Step 1: Verify sections 1-3 are complete**

Run:
```bash
wc -l conductor/tracks/intent_dsl_survey_20260612/report.md
grep -c "^## " conductor/tracks/intent_dsl_survey_20260612/report.md
```
Expected: ~1500-2500 lines, 8 `## ` headings (sections 1-7 + Appendix).

- [ ] **Step 2: Phase 2 checkpoint commit**

```bash
git add conductor/tracks/intent_dsl_survey_20260612/report.md
git commit -m "docs(ideation): Write intent_dsl_survey_20260612 sections 1-3

Section 1: the intent-based design philosophy (4 anchor claims)
Section 2: prior art across 8 clusters (0: IMGUI/MVC, 1: Concatenative,
  2: Array, 3: Intent-mapping, 4: Meta-Tooling DSLs, 5: SSDL,
  6: Command Palette, 7: Result)
Section 3: the 14-primitive grammar with ambiguity flags

All citations file:line or URL. All clusters cite specific source
material. Grammar formalized from user's pseudocode with explicit
ambiguity flags for proc/++/m[row][column]."
git notes add -m "intent_dsl_survey_20260612 Phase 2 checkpoint (sections 1-3)

Sections 1, 2, 3 written. Section 1: 4 anchor claims (O'Donnell,
Onat/Lottes, CoSy, Jofito). Section 2: 8 clusters with all
citations. Section 3: 14-primitive grammar table + ambiguity flags.

Next: phase 3 (write sections 4, 5, 6, 7)." $(git log -1 --format=%H)
```

Update `state.toml`:
- `current_phase = 2`
- `phase_2 = { status = "completed", checkpointsha = "<commit-sha>", name = "Write sections 1, 2, 3" }`
- `t2_1` to `t2_11` = `completed` with `commit_sha` set

Commit the state update.

---

## Phase 3: Write Sections 4, 5, 6, 7

### Task 15: Write section 4 Tier 1 (math)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 4 Tier 1

- [ ] **Step 1: Replace the Tier 1 stub with the 10 math verbs**

Per spec §3.4 Tier 1, the verbs are: `:=` (local bind), `stack { }` (stack scope), `for x .. n` (range), `+`, `-`, `*`, `/`, `^`, `sum`, `product`, `a[i,j]` (bracket indexing), `if/then`.

For each verb, the 5-column table:
- Symbol
- Name
- Signature
- One-line semantics
- One example (from the user's pseudocode)
- "Borrowed from" note
- SSDL shape tag

Tier 1 SSDL shape tags: most are `[I]` (single instruction) since they're scalar operations; the range `for x .. n` is `o->` (codecycle).

### Task 16: Write section 4 Tier 2 (data pipeline)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 4 Tier 2

- [ ] **Step 1: Replace the Tier 2 stub with the 12 data-pipeline verbs**

Per spec §3.4 Tier 2, the verbs are: `scan`, `select`, `filter`, `map`, `fold`, `sort`, `group`, `dedupe`, `arena { }`, `scatter`, `gather`, `pipe`.

For each verb, the 5-column table (with one extra column: "maps to mcp_client tool"):
- Symbol
- Name
- Signature
- One-line semantics
- One example
- "Maps to mcp_client tool" note (e.g., `scan` → `list_directory` + `search_files`)
- "Borrowed from" note
- SSDL shape tag

Tier 2 SSDL shape tags: `scan` is `[I]`, `filter`/`map` are `->` (codepath) or `o->` (codecycle), `arena { }` is `o->` (codecycle), `pipe` is `=>` (wide codepath).

### Task 17: Write section 4 Tier 3 (shell)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 4 Tier 3

- [ ] **Step 1: Replace the Tier 3 stub with the 10 shell verbs**

Per spec §3.4 Tier 3, the verbs are: `exec`, `open`, `read`, `write`, `close`, `path`, `env`, `wait`, `poll`, `cwd`.

For each verb, the 5-column table (with "maps to mcp_client tool" and "maps to shell_runner" columns).

Tier 3 SSDL shape tags: most are `[I]` (single instruction); `wait`/`poll` are `o->` (codecycle, blocking or polling).

### Task 18: Write section 4 Tier 4 (AI-fuzzing tolerance)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 4 Tier 4

- [ ] **Step 1: Replace the Tier 4 stub with the 8 AI-fuzzing-tolerance verbs**

Per spec §3.4 Tier 4, the verbs are: `fuzzy`, `try { ... } recover { ... }`, `sandbox { ... }`, `audit`, `didyoumean`, `span`, `offset`, `assumewide`.

For each verb, the 5-column table (with "borrowed from" pointing to O'Donnell / Jody / SSDL where applicable).

This is the **novel tier** — give it extra space. For each verb:
- Signature
- One-line semantics
- One example
- "Why this is needed for AI agents" (the user's specific requirement: deal with AI idiosyncrasies)
- "Borrowed from" note
- SSDL shape tag

Tier 4 SSDL shape tags: most are `[I]` (single instruction); `try { ... } recover { ... }` is `->B->` (codepath with branch); `sandbox { ... }` is `o->` (codecycle, the IEventTarget boundary); `assumewide` is `=>` (wide codepath assumption).

### Task 19: Write section 5 (hardware mapping)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 5

- [ ] **Step 1: Replace the section 5 stub with the 4 anchor claims**

Per spec §3.5, the 4 anchor claims:
- **Claim 1 (Onat/Lottes, hardware):** the 2-register stack + magenta pipe + basic blocks + lambdas + preemptive scatter (per `C:\projects\forth\bootslop\references\kyra_in-depth.md`, `forth_day_2020_in-depth.md`, `neokineogfx_in-depth.md`, `X.com - Onat & Lottes Interaction 1.png.ocr.md`) → our `->`, `[ ]`, `arena { }`, `scatter`/`gather`. 8 sub-bullets with file:line references.
- **Claim 2 (O'Donnell, paradigm):** the DSL's pipeline is immediate-mode in pipeline composition. Per `https://johno.se/book/imgui.html`. Manifest in vocab: the `->` chain has no "pipeline object".
- **Claim 3 (Forth/CoSy, syntax):** concatenative syntax is immediate-mode in tokenization, evaluation, and parsing.
- **Claim 4 (APL/K, data):** array languages are immediate-mode in data representation. The DSL's `for x .. n` + `result[row, col]` inherits the "no array object" property.

### Task 20: Write section 6 (AI-agent properties)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 6

- [ ] **Step 1: Replace the section 6 stub with the 10 claims**

Per spec §3.6, the 10 claims. Each claim is 1-2 paragraphs. Cite the specific project source for each:
- Claim 1: `docs/guide_meta_boundary.md` §"Domain 2: The Meta-Tooling"
- Claim 2: `docs/guide_meta_boundary.md` §"The Inter-Domain Bridges"
- Claim 3: `docs/guide_tools.md` §"The MCP Bridge"
- Claim 4: `conductor/tracks/nagent_review_20260608/nagent_review_v2_1_20260612.md` §2.1
- Claim 5: `nagent_review_v2_1_20260612.md` §2.2
- Claim 6: `conductor/tracks/data_oriented_error_handling_20260606/spec.md` §3.3
- Claim 7: `docs/guide_command_palette.md`
- Claim 8: `docs/guide_state_lifecycle.md` §"Hook API Surface"
- Claim 9: `https://johno.se/book/mvc.html` §"Writing to Model state" (the IEventTarget pattern = the `sandbox` verb)
- Claim 10: `https://johno.se/book/mvc.html` §"Reading Model state" (the "reads are free" claim = the rationale for cheap Tier 2 verbs)

### Task 21: Write section 7 (open questions)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` section 7

- [ ] **Step 1: Replace the section 7 stub with 8 open questions + the placeholder connection block**

Per spec §3.7:
- 8 open questions for follow-up B (interpreter prototype)
- The connection block to `intent_dsl_for_meta_tooling_20260608_PLACEHOLDER` (per `mcp_architecture_refactor_20260606/spec.md` §12.1 and `nagent_review_20260608/metadata.json:28`)

The 8 questions from spec §3.7:
1. How does `arena { }` map to Onat's preemptive scatter?
2. Where does "intent resolution" live?
3. How does `audit` interact with `comms.log`?
4. Does `sandbox` produce `Result[T, ErrorInfo]`?
5. `didyoumean` recovery: parser feature or user-facing verb?
6. How does `for x .. n` interact with Tier 2's `filter`/`map`?
7. How does `sandbox` map to `pre_tool_callback`?
8. Connection to `intent_dsl_for_meta_tooling_20260608_PLACEHOLDER`: minimum subset for one round-trip end-to-end?

### Task 22: Write the Appendix (bibliography)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` Appendix

- [ ] **Step 1: Replace the Appendix stub with the full bibliography**

Per spec §13.3, the full bibliography with file:line references. Group by cluster. Each entry: 1 line with the source identifier and the file:line or URL.

For project references, cite the exact files the engineer can read (per spec §13.1):
- `docs/Readme.md` (the doc index)
- `docs/ideation/ed_chunk_data_structures_20260523.md` (the existing ideation doc)
- `conductor/tracks.md` (the active tracks registry)
- `conductor/workflow.md` (the workflow rules)
- `conductor/product.md` (the product guide)
- `conductor/tech-stack.md` (the tech stack)
- `conductor/code_styleguides/` (the styleguides)

For track-internal references (per spec §13.2):
- `conductor/tracks/data_oriented_error_handling_20260606/spec.md`
- `conductor/tracks/nagent_review_20260608/nagent_review_v2_1_20260612.md`
- `conductor/tracks/mcp_architecture_refactor_20260606/spec.md` §12.1
- `conductor/tracks/code_path_audit_20260607/spec.md`

For external references (per spec §13.3):
- All Onat/Lottes files in `C:\projects\forth\bootslop\references\`
- Jofito sources
- CoSy URLs
- O'Donnell URLs

### Task 23: Phase 3 checkpoint commit

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/state.toml`

- [ ] **Step 1: Verify the report is complete**

Run:
```bash
wc -l conductor/tracks/intent_dsl_survey_20260612/report.md
grep -c "^## " conductor/tracks/intent_dsl_survey_20260612/report.md
grep -c "^### " conductor/tracks/intent_dsl_survey_20260612/report.md
```
Expected: ~3500-5000 lines, 8 `## ` headings (sections 1-7 + Appendix), ~30-50 `### ` headings (clusters + tiers + claims + sub-sections).

- [ ] **Step 2: Verify the 12 verification criteria from spec §11**

For each criterion, confirm:
- [ ] All 7 sections present and non-empty
- [ ] Every prior-art claim in section 2 cites a specific source
- [ ] User's pseudocode grammar in section 3 with examples from snippets
- [ ] Every 4-tier verb in section 4 has signature + semantics + example + borrowed-from + SSDL tag
- [ ] Section 5 references Onat/Lottes file:lines
- [ ] Section 6 references the 4 memory dimensions + SSDL + Result + meta-boundary
- [ ] Section 7 has 8 open questions + placeholder connection block
- [ ] Appendix has full bibliography
- [ ] (Self-review, user review, git note, tracks.md registration — done in phase 4)

- [ ] **Step 3: Phase 3 checkpoint commit**

```bash
git add conductor/tracks/intent_dsl_survey_20260612/report.md
git commit -m "docs(ideation): Write intent_dsl_survey_20260612 sections 4-7 + Appendix

Section 4: the 4-tier vocab (~40 verbs across T1 math, T2 data
  pipeline, T3 shell, T4 AI-fuzzing tolerance)
Section 5: hardware mapping (4 anchor claims to Onat/Lottes, O'Donnell,
  Forth/CoSy, APL/K)
Section 6: AI-agent properties (10 claims tying to existing project
  architecture)
Section 7: 8 open questions for follow-up B + placeholder connection
Appendix: full bibliography with file:line references

Report is now feature-complete (pending self-review + user review)."
git notes add -m "intent_dsl_survey_20260612 Phase 3 checkpoint (sections 4-7)

Sections 4, 5, 6, 7 + Appendix written. Report is feature-complete.

Section 4: 4-tier vocab with 40 verbs. Each verb has signature,
semantics, example, borrowed-from note, SSDL shape tag, and (for
T2/T3) maps-to-mcp_client-tool column. T4 is the novel contribution.

Section 5: 4 hardware anchor claims tying the verbs to Onat/Lottes
2-register model, O'Donnell immediate-mode paradigm, Forth/CoSy
concatenative syntax, and APL/K array data.

Section 6: 10 AI-agent properties tying the DSL to the existing
project: Meta-Tooling domain, runtime path through cli_tool_bridge,
3-layer security, 4 memory dimensions, stable-to-volatile cache,
Result envelope, Command Palette 33 commands, Hook API state fields,
IEventTarget = sandbox verb, 'reads are free' = cheap Tier 2 verbs.

Section 7: 8 open questions for the interpreter prototype + connection
block to intent_dsl_for_meta_tooling_20260608_PLACEHOLDER.

Appendix: full bibliography with file:line / URL references.

Next: phase 4 (self-review + user review + final commit)." $(git log -1 --format=%H)
```

Update `state.toml`:
- `current_phase = 3`
- `phase_3 = { status = "completed", checkpointsha = "<commit-sha>", name = "Write sections 4, 5, 6, 7" }`
- `t3_1` to `t3_8` = `completed` with `commit_sha` set

Commit the state update.

---

## Phase 4: Self-Review + User Review + Commit + Register

### Task 24: Self-review per the brainstorming skill

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md` (fix any issues found)

- [ ] **Step 1: Placeholder scan**

Run:
```bash
grep -nE "TBD|TODO|FIXME|XXX|\?\?\?" conductor/tracks/intent_dsl_survey_20260612/report.md
```
Expected: no matches. If any match, fix them inline.

- [ ] **Step 2: Internal consistency check**

- Does section 1's 4-claim list match the claims in section 5's hardware mapping?
- Does section 2's cluster enumeration match the 8 clusters in spec §3.2?
- Does section 3's 14-primitive table match the grammar in spec §3.3?
- Does section 4's 4-tier verb count (~40) match the spec's stated count?
- Does section 5's 4-anchor-claim list match the spec's claim list?
- Does section 6's 10-claim list match the spec's claim list?
- Does section 7's 8-question list match the spec's question list?

Fix any inconsistencies inline.

- [ ] **Step 3: Scope check**

The report is research-only; it does NOT include:
- An interpreter
- A bridge script
- XML/JSON record formats
- The Application's function-calling
- RAG integration
- New `src/` code
- New tests
- `pyproject.toml` changes

Verify the report does not accidentally include any of these.

- [ ] **Step 4: Ambiguity check**

- Are the 4 anchor claims in section 1 each *single-meaning*? (Per the convention from `data_oriented_error_handling_20260606` §3.1: "aliasing the same code with multiple meaning" is an anti-pattern; each claim should have exactly one meaning.)
- Are the 10 AI-agent claims each *single-meaning*?
- Are the 4 hardware anchor claims each *single-meaning*?
- Are the 8 open questions each *answerable* (i.e., a future track can address them)?

Fix any issues inline.

- [ ] **Step 5: Commit any fixes (if any were made)**

```bash
git add conductor/tracks/intent_dsl_survey_20260612/report.md
git commit -m "docs(ideation): Self-review fixes for intent_dsl_survey_20260612

[Describe the fixes per the self-review pass]"
```

If no fixes were made, skip this commit.

Update `state.toml`:
- `t4_1` = `completed` with `commit_sha` set (or `commit_sha = ""` if no commit)
- `self_review_complete = true` in `[verification]`

### Task 25: User review

**Files:**
- (no modifications until user approves)

- [ ] **Step 1: Show the report to the user**

Tell the user:
> "Report is ready for your review at `conductor/tracks/intent_dsl_survey_20260612/report.md`. ~[N] lines, 7 sections, 4-tier vocab with ~40 verbs, 8-cluster prior art survey, 4 hardware anchor claims, 10 AI-agent properties, 8 open questions for the follow-up interpreter prototype. Please review and let me know if you want any changes."

- [ ] **Step 2: Wait for user response**

The user will either:
- Approve (proceed to Task 27)
- Request changes (loop back, apply changes in a new commit, re-review)

### Task 26: Apply user feedback (if any)

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/report.md`

- [ ] **Step 1: If user requested changes, apply them**

Make the requested edits to the report.

- [ ] **Step 2: Commit the changes**

```bash
git add conductor/tracks/intent_dsl_survey_20260612/report.md
git commit -m "docs(ideation): Apply user review feedback to intent_dsl_survey_20260612

[Describe the changes per the user's feedback]"
```

- [ ] **Step 3: Show the updated report to the user for re-review**

> "Applied your feedback in [section/commit reference]. Updated report is at `conductor/tracks/intent_dsl_survey_20260612/report.md`. Please confirm the changes are good."

Loop back to Task 25 Step 1 if user wants more changes.

If no user feedback was given (i.e., the user approved on first review), skip Tasks 26 and proceed to Task 27.

### Task 27: Final commit + git note

**Files:**
- Modify: `conductor/tracks/intent_dsl_survey_20260612/state.toml`

- [ ] **Step 1: Verify all 12 verification criteria from spec §11 are met**

For each criterion, confirm ✓. Update `state.toml` `[verification]` table.

- [ ] **Step 2: Final commit (only if not already committed in Task 26)**

If the report was already committed in Task 26, skip this commit. Otherwise:

```bash
git add conductor/tracks/intent_dsl_survey_20260612/report.md
git commit -m "docs(ideation): Finalize intent_dsl_survey_20260612 report"
```

- [ ] **Step 3: Final git note**

```bash
git notes add -m "intent_dsl_survey_20260612 COMPLETE

Report finalized. All 12 verification criteria met. User approved.

7 sections, ~[N] lines, 4-tier vocab (~40 verbs), 8-cluster prior art
survey, 4 hardware anchor claims, 10 AI-agent properties, 8 open
questions for follow-up B (interpreter prototype).

Will be consumed by:
- nagent v2.2 (Future-Track Candidate #4: Intent-based DSL)
- intent_dsl_for_meta_tooling_20260608_PLACEHOLDER (when specced)
- future interpreter prototype (follow-up B track)

Time-sensitive: report complete before nagent v2.2." $(git log -1 --format=%H)
```

Update `state.toml`:
- `status = "completed"`
- `current_phase = "complete"`
- `phase_4 = { status = "completed", checkpointsha = "<commit-sha>", name = "Self-review + user review + commit" }`
- `t4_1` to `t4_4` = `completed` with `commit_sha` set
- All `[verification]` flags = `true`
- `git_note_attached = true`

Commit the state update:
```bash
git add conductor/tracks/intent_dsl_survey_20260612/state.toml
git commit -m "conductor(track): Mark intent_dsl_survey_20260612 complete"
```

### Task 28: Update tracks.md to register track as completed

**Files:**
- Modify: `conductor/tracks.md`

- [ ] **Step 1: Update the table row**

The existing row in the Active Tracks table:
```
| 23 | A (research) | [Intent-Based Scripting Languages Survey](#track-intent-based-scripting-languages-survey-new-2026-06-12) | spec ✓, plan pending | (none — independent; NEW 2026-06-12; **non-impl research track**, **time-sensitive: report must complete before nagent v2.2**) |
```

Update the status to:
```
| 23 | A (research) | [Intent-Based Scripting Languages Survey](#track-intent-based-scripting-languages-survey-new-2026-06-12) | **complete** (~[N] lines, 7 sections) | (none — independent; NEW 2026-06-12; **non-impl research track**, **time-sensitive: report complete before nagent v2.2**) |
```

- [ ] **Step 2: Move the track section to the "Recently Completed" section**

Find the section "Recently Completed (2026-06-06 to 2026-06-10)" (or wherever the existing convention is) and add a new entry. The existing recently-completed format is:
```
#### Track: [Name] `[COMPLETE YYYY-MM-DD]`
*Link: [./tracks/<name>/](./tracks/<name>/), Spec: [.../spec.md], Plan: [.../plan.md]*
*Status: ...*
```

Add the new track at the top of the recently-completed section:
```
#### Track: Intent-Based Scripting Languages Survey `[COMPLETE 2026-06-12]`
*Link: [./tracks/intent_dsl_survey_20260612/](./tracks/intent_dsl_survey_20260612/), Spec: [./tracks/intent_dsl_survey_20260612/spec.md](./tracks/intent_dsl_survey_20260612/spec.md), Plan: [./tracks/intent_dsl_survey_20260612/plan.md](./tracks/intent_dsl_survey_20260612/plan.md)*
*Status: COMPLETE 2026-06-12. Report at conductor/tracks/intent_dsl_survey_20260612/report.md (~[N] lines, 7 sections, 4-tier vocab with ~40 verbs). Time-sensitive goal met: complete before nagent v2.2. Will be consumed by nagent v2.2 (Candidate #4) and future interpreter prototype (follow-up B).*
```

- [ ] **Step 3: Commit the tracks.md update**

```bash
git add conductor/tracks.md
git commit -m "conductor(tracks): Mark intent_dsl_survey_20260612 complete"
```

Update `state.toml`:
- `t4_5` = `completed` with `commit_sha` set
- `tracks_md_registered = true`

Commit the final state update:
```bash
git add conductor/tracks/intent_dsl_survey_20260612/state.toml
git commit -m "conductor(track): Mark intent_dsl_survey_20260612 final state (tracks.md registered)"
```

---

## Self-Review (against the spec)

**1. Spec coverage:** Skim each section/requirement in the spec.

| Spec § | Requirement | Task | Covered? |
|---|---|---|---|
| §1 | Overview (the report's purpose) | Task 1, 3 | ✓ |
| §2 | Goals (priority A + B + C + D) | All tasks | ✓ |
| §2.1 | Non-goals | implicit (no src/tests/pyproject changes) | ✓ |
| §3.1 | Section 1 (philosophy) | Task 4 | ✓ |
| §3.2 | Section 2 (8 clusters) | Tasks 5-12 | ✓ |
| §3.3 | Section 3 (grammar) | Task 13 | ✓ |
| §3.4 | Section 4 (4-tier vocab) | Tasks 15-18 | ✓ |
| §3.5 | Section 5 (hardware mapping) | Task 19 | ✓ |
| §3.6 | Section 6 (AI-agent properties) | Task 20 | ✓ |
| §3.7 | Section 7 (open questions) | Task 21 | ✓ |
| §4 | Per-section content boundaries | implicit (each task produces a section) | ✓ |
| §5 | No new Python dependencies | implicit (research-only) | ✓ |
| §6 | Testing strategy (self-review + user review) | Task 24, 25 | ✓ |
| §7 | Migration / rollout | implicit (single file addition) | ✓ |
| §8 | Risks & mitigations | implicit (covered by self-review) | ✓ |
| §9 | Open questions for Tier 2 Tech Lead | addressed by Task 14 (markdown tables vs ASCII art) | ✓ |
| §10 | Coordination with pending tracks | implicit (no blockers) | ✓ |
| §11 | Verification criteria (12 items) | Task 23 Step 2, Task 27 Step 1 | ✓ |
| §12 | Out of scope (8 items) | implicit (research-only) | ✓ |
| §13.1 | Existing project references | Appendix (Task 22) | ✓ |
| §13.2 | Track-internal references | Appendix (Task 22) | ✓ |
| §13.3 | External references | Appendix (Task 22) | ✓ |

All 21 spec requirements are covered.

**2. Placeholder scan:** The plan contains no "TBD", "TODO", "implement later", "fill in details", or "Similar to Task N" placeholders. Every step shows the actual content.

**3. Type consistency:** The plan uses consistent terminology throughout:
- Track name: `intent_dsl_survey_20260612` (consistent across all tasks)
- Report path: `conductor/tracks/intent_dsl_survey_20260612/report.md` (consistent)
- Spec path: `conductor/tracks/intent_dsl_survey_20260612/spec.md` (consistent)
- State path: `conductor/tracks/intent_dsl_survey_20260612/state.toml` (consistent)
- Verbs are consistent with the spec's 4-tier list
- 8 prior-art clusters are consistent
- 14 grammar primitives are consistent
- 4 hardware anchor claims are consistent
- 10 AI-agent properties are consistent
- 8 open questions are consistent

No type or method signature inconsistencies found.

---

## Execution Handoff

Plan complete and saved to `conductor/tracks/intent_dsl_survey_20260612/plan.md`. 28 tasks across 4 phases.

The track is research-only, so the typical "subagent-driven-development" workflow (which dispatches a fresh subagent per task) is less applicable than for a code track. The plan is more naturally executed **inline by a single Tier 2 Tech Lead** with periodic checkpoints.

**Recommended execution: Inline by a single Tier 2 Tech Lead.** Phases 1-3 are self-directed (reading + writing). Phase 4 is the user-approval gate.

**Alternatively: Subagent-Driven per task.** If the user prefers, each task (or each cluster write) can be dispatched to a fresh subagent. This is slower per task but cleaner for context isolation. Recommended for: Tasks 6-12 (the 7 cluster writes, each can be a subagent dispatch).

**Decision is yours. The plan can be executed either way.**
