Files
manual_slop/conductor/tracks/intent_dsl_survey_20260612/plan.md
T
ed c4085319ff docs(ssdl): rename SSDL shape symbols to concise form (o->, o=>)
Final vocabulary:
- ===>        -> ->        (codepath)
- ===>W===>  -> =>        (wide codepath)
- o==>       -> o->       (codecycle)
- oo==>oo    -> o=>       (wide codecycle)
- ===>B===>  -> ->B->     (codepath with branch)
- ===>M===>  -> ->M->     (codepath with merge)

Composites ===>B===> and ===>M===> preserved as ->B->/->M-> so the
branch/merge markers stay visible (vs. dropping them entirely).

Scope: 3 reports files (computational_shapes_ssdl_digest,
proposed_new_tracks, session_synthesis), 4 intent_dsl_survey files
(plan, report, report_v1.1, report_v1.2), 3 nagent_review files
(state.toml description, v2_2, v2_3). All old symbols verified gone
via grep; all new symbols verified present at expected locations.
2026-06-12 12:52:20 -04:00

45 KiB

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

# 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
{
  "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
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):

# 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:

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
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:

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:

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
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:

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

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:

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)
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
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:

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
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:

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
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:

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.