mesh

$mesh is the high-fanout batch-execution path for Codex once repeated leaf work has been shaped.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mesh" with this command: npx skills add tkersey/dotfiles/tkersey-dotfiles-mesh

mesh

Intent

$mesh is the high-fanout batch-execution path for Codex once repeated leaf work has been shaped.

It is for already-shaped leaf work, not for planning or decomposition.

Use it when:

  • the user explicitly asks for $mesh , or repeated leaf work is already clearly row-shaped

  • the workload is row-shaped and homogeneous

  • each row can be processed independently

  • each row represents one substantive unit with a unique scope and acceptance target

  • you want structured per-row results exported to CSV

  • planning is complete and the remaining work is leaf execution

Do not use it when:

  • the work is research, review, debate, or design

  • the task still needs decomposition or shared judgment

  • tasks share context or depend on one another

  • multiple workers would touch the same mutable scope

  • direct spawn_agent delegation or local execution is clearer

Native Architecture Fit

  • $mesh maps to spawn_agents_on_csv , not a separate runtime protocol.

  • The batch job spawns one worker sub-agent per CSV row.

  • The main call blocks until the batch finishes.

  • Each worker must call report_agent_job_result exactly once.

  • Results are exported to output_csv_path or a default output CSV.

  • Planning happens before the batch starts; $mesh executes the already-shaped rows.

Recommended Uses

  • audit one file per row

  • classify one ticket, log chunk, or document per row

  • extract structured fields from many inputs

  • run the same bounded transformation over a file list with disjoint outputs

  • execute one disjoint implementation unit per row after $select or $teams has already shaped the wave

If the work is heterogeneous, use $teams or direct spawn_agent instead.

Composite vs Leaf Fit

Use $mesh only when every row is already a leaf task:

  • clear inputs from CSV columns

  • one instruction template for every row

  • no cross-row coordination

  • one structured result per row

If you still need to decide the row schema, challenge the approach, or compare strategies, do that work before $mesh , usually with $teams or locally.

Substantive-unit rule

  • One row should represent one unique work unit with one unique write or read scope and one acceptance target.

  • Do not multiply rows over the same scope merely to create more lanes, more evidence, or a higher concurrency number.

  • Treat a clean primary row as sufficient evidence for that unit.

  • Only add secondary review, coder, fixer, prover, or integration rows when a prior row reports a concrete blocker, a failed proof, or a non-trivial diff that needs another pass.

  • Deprecated shims (reducer , mentor , locksmith , applier ) are never valid fresh rows.

Recommended Flow

  • Confirm planning is complete and the rows are truly homogeneous and independent.

  • Build a CSV with stable headers and, when useful, a stable id_column ; keep one row per substantive unit.

  • Prefer task_id as the stable row id when the batch came from an OrchPlan or $st claim set.

  • Write one instruction template using {column} placeholders and one primary deliverable per row.

  • Choose only the controls you need: output_schema , output_csv_path , max_concurrency , max_runtime_seconds ; set max_concurrency to the safe row count unless a lower cap is required.

  • Run spawn_agents_on_csv .

  • Only queue secondary rows for units that reported a concrete blocker, a failed proof, or a non-trivial diff needing another pass.

  • Review the exported CSV and do any integration or follow-up work locally or with $teams .

  • If $st owns execution state, reconcile the export with st import-mesh-results --input <output.csv> before closing the wave.

Concrete Examples

Example 1: Audit one file per row

Goal:

Check every markdown file for required frontmatter keys and export one result row per file.

Example CSV:

id,path 1,docs/intro.md 2,docs/setup.md

Example instruction template:

Inspect {path}. Report whether the required frontmatter keys exist and list any missing keys.

Why $mesh :

  • every row uses the same template

  • every row is independent

  • the result can be captured as one structured object per file

Example 2: Classify support tickets

Goal:

Classify 2,000 support tickets by product area and urgency, then export the labels to CSV.

Example CSV:

ticket_id,text T-1001,"Billing page shows a 500 error" T-1002,"How do I rotate an API key?"

Example output schema:

{ "type": "object", "properties": { "area": { "type": "string" }, "urgency": { "type": "string" }, "needs_human": { "type": "boolean" } }, "required": ["area", "urgency", "needs_human"] }

Why $mesh :

  • this is repeated, read-only classification work

  • the schema makes the per-row output easy to compare and post-process

Example 3: Disjoint file transformation

Goal:

Rewrite a large set of generated summaries, one output file per input file, with no shared destinations.

Good $mesh setup:

  • CSV columns such as id,input_path,output_path

  • one instruction template that reads {input_path} and writes only {output_path}

  • one JSON result confirming whether the row succeeded

Why $mesh :

  • the write scopes are disjoint

  • the same bounded transformation repeats for every row

Example 4: Disjoint implementation units

Goal:

Execute the first safe implementation wave from an OrchPlan where each task already owns a disjoint scope.

Good $mesh setup:

  • CSV columns such as id,objective,write_scope,proof_command

  • one primary row per implementation unit, not one row per reviewer lane

  • max_concurrency set to the number of safe disjoint units

  • follow-up prover or fixer rows added only for units that failed proof or reported blockers

Why $mesh :

  • the work is repeated leaf execution after planning is complete

  • each row owns a unique scope and has a concrete acceptance target

  • the batch gets real fanout without inventing synthetic evidence lanes

Counterexample: one feature across shared code

Do not use $mesh for:

Add a feature that changes shared parser logic, server behavior, and the UI.

Why not:

  • the work still needs decomposition and coordination

  • the rows would not be independent

  • shared mutable files make $teams or local execution the safer path

Row Design Rules

  • Keep each row objective concrete and bounded.

  • Make each row one substantive unit with a unique scope and acceptance target.

  • Keep write_scope aligned with the canonical lock-root contract in codex/skills/select/references/lock-roots.md .

  • Prefer read-only work or disjoint write scopes.

  • Keep result objects structured and comparable across rows.

  • Use stable row ids when you will reconcile outputs later.

  • Do not multiply rows by role or lane on the same scope unless a blocker or failed proof justifies the follow-up.

  • If you need reduction thinking, keep it inside coder by setting approach=reduce ; do not resurrect reducer as a new row type.

  • If rows need shared mutable state, stop and switch away from $mesh .

  • If a row still needs planning, stop and finish decomposition before running the batch.

Result Contract

  • Every worker must report exactly one JSON result via report_agent_job_result .

  • Missing reports are failures.

  • Narrative text is non-authoritative; the structured result is what matters.

  • If you provide an output_schema , keep it minimal and aligned with the fields you actually need.

See references/output-contract.md .

Anti-patterns

  • using $mesh as a general replacement for $teams

  • doing recursive planning or debate inside the batch workers

  • splitting one tightly coupled implementation across dependent rows

  • overlapping write scopes across rows

  • launching a synthetic evidence wave after the substantive work is already done

  • multiplying coder/fixer/prover/integrator rows over the same scope without a blocker-triggered reason

  • routing fresh work through deprecated shims instead of the live core roles

  • relying on free-form text instead of structured result fields

  • reusing the same path for csv_path and output_csv_path

See references/orchestration-anti-patterns.md .

Final Response

When mesh actually ran, include a short Orchestration Ledger in prose.

Good fields:

  • Skills used

  • Subagents

  • Artifacts produced

  • Cleanup status

Omit the section entirely when no orchestration ran.

Handoff From $teams

If $teams hands work to $mesh , the handoff should include:

  • confirmation that planning is complete and only leaf execution remains

  • the CSV or row schema

  • the instruction template

  • the expected output fields

  • any concurrency or timeout assumptions

Do not add extra lane, quorum, or state-machine protocols unless the runtime actually provides them.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

codex-upcoming-features

No summary provided by upstream source.

Repository SourceNeeds Review
General

grill-me

No summary provided by upstream source.

Repository SourceNeeds Review
General

creative-problem-solver

No summary provided by upstream source.

Repository SourceNeeds Review