Private
Public Access
0
0
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_offsetcol_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., scanlist_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.