Back to main

The Work Item Is the Product

[ AUTHORIAL INTENT & AI DISCLOSURE ]

This draft was written with Codex after a live audit of Soul CLI docs, command surfaces, and related klaweht-blog posts.

Forensic Hygiene Active
View Policy Standard →

Two recent AI infrastructure posts landed on the same pressure point from opposite sides.

Amp’s “Pave The Road” argues that the next bottleneck for AI coding is not only model quality. The bottleneck is the road around the model: slow review queues, permission gates, local setup, blocked deploy paths, and engineering rituals built for a world where code was expensive to produce.

Truss Labs’ “The work item is the product” makes a quieter but deeper governance argument. Enterprise AI adoption should not be measured by seats, logins, prompts, or token spend. The useful unit is the work item. A security alert, vendor review, deployment approval, support escalation, or data access request becomes valuable when it arrives with classification, evidence, policy mapping, recommended action, route, and receipt.

Those two posts describe the shape I have been circling with Soul CLI.

Amp is right that agents need better roads.

Truss is right that the road is not enough.

For serious work, the road has to prepare the work item as it moves.

The Mistake Is Treating the Chat as the Product

Most AI tooling still treats the chat session as the main artifact.

That is fine for brainstorming. It is weak for engineering.

When an agent changes code, the transcript is only one witness. It does not cleanly answer the operational questions:

  • What was the task?
  • What was the contract?
  • Which attempt did this?
  • Which checkout did it use?
  • What changed?
  • What tests ran?
  • What review happened?
  • Which finding was accepted or waived?
  • Which commit carried the result?
  • What should happen next?

If those answers live only in chat, the operator becomes the database. That does not scale even for one person, because the context window is not a memory system and the human is already doing the hard part: deciding what matters.

Soul CLI exists because I do not want the provider to own the work. Codex, Gemini, Claude, Hermes, the desktop app, and the terminal are execution surfaces. The durable object has to live outside them.

That object is the work item.

What Soul Already Does

Soul’s current work loop is already close to the Truss-shaped middle:

task -> run -> implementation -> verification -> review -> commit -> close

This is not just a checklist. Each phase creates or attaches to registry state.

The task is the contract. It has a stable id, subject, description, priority, category, status, tags, and Done criteria. It says what should become true.

The run is the attempt. It records the objective, session id, task id, workspace, status, trigger, and step evidence. It says which execution envelope tried to make the task true.

The workspace is the execution cell. When needed, soul work begin can create or register an isolated worktree so the agent is not quietly building on unrelated local state.

Verification is a run step. soul work verify records the command, cwd, tracked inputs, stdout, stderr, attempts, and status under the run. A passing test is no longer a sentence in a transcript. It is an artifact.

Review is a run step. soul work review can delegate to a specialist, record provider metadata, preserve findings, and tie the result back to the same run. Review becomes a transition with evidence, not a vibe.

Commit is where the code plane and control plane meet. soul work commit expects the Strategic Quad plus task, run, summary, and verification metadata. Git owns the diff. Soul owns the reason and receipt.

Closeout is not finalization. soul work close completes the work transaction. soul finalize is the separate session-memory bridge that distills a conversation into the long-lived registry and handoff artifacts.

That separation matters. It keeps code history, work state, and session memory from collapsing into one messy object.

Amp, Applied to Soul

Amp’s strongest point is that agent speed is limited by the system around it.

Soul addresses part of that today by making the operating path explicit and repeatable. An agent does not have to improvise the lifecycle every time. It can begin work, inspect the active task, create a run, verify, request review, commit with metadata, and close with evidence.

That is a paved road compared with ad hoc chat.

But Soul’s road is intentionally conservative. It does not say “let the agent do anything.” It says “make the fast path accountable enough that we can let more happen without losing the thread.”

This is where I think Amp’s framing needs a constraint. Isolation, rollback, and parallel execution are necessary, but they do not cover every risk. Some mistakes are cheap. Some are not. Billing bugs, data migration errors, leaked secrets, customer data exposure, and policy violations do not become harmless because a rollback exists.

The Soul answer is not to keep every old gate. It is to make the work item carry enough context that the gate can become more precise.

Instead of:

Can this deploy?

The work item should say:

Task: SOUL-...
Run: run_...
Workspace: clean task worktree at base commit abc123
Changed paths: auth middleware, billing webhook parser
Data classes: customer email, billing account id
Verifier: unit pass, integration pass, migration rollback not tested
Review: payments owner finding unresolved
Recommendation: hold billing parser, allow auth middleware
Receipt: verifier and review artifacts attached

That is not slower. That is the road becoming legible.

Truss, Applied to Soul

Truss’s prepared-work-item model is almost exactly the shape Soul wants for agentic engineering.

A prepared work item is not a summary pasted into a chat window. It is an operational object enriched before judgment. For Soul, the equivalent object should be an implementation case packet:

raw request
  -> task contract
  -> scope and workspace
  -> affected files
  -> evidence packet
  -> verifier results
  -> policy flags
  -> reviewer route
  -> recommendation
  -> durable receipt
  -> human judgment

Soul has many of these pieces today. The registry contains task records, run records, step artifacts, workspace metadata, session ledgers, closeout evidence, finalization summaries, and provider-routing traces.

The weakness is that they are still too scattered.

The system can answer the questions, but it often answers them by making the agent or operator inspect several commands and files:

  • soul pulse --agent-summary
  • soul work status
  • soul task show
  • soul run show
  • soul run step list
  • soul run step show
  • soul git check-quad
  • soul finalize

That is fine for debugging. It is not yet the crisp case packet Truss is describing.

The next layer should not be another chat UI. It should be a first-class work-item view:

soul work packet -p <project> --task-id <task> --run-id <run>

Or maybe:

soul work receipt <run_id>

The command should produce a compact human and machine-readable packet:

{
  "task": {
    "id": "SOUL-ILTERIS_DAILY-023",
    "subject": "Draft klaweht post on work items and Soul CLI",
    "done_criteria": ["Blog draft exists", "Verification recorded"]
  },
  "run": {
    "id": "run_auth_634f69f7d548",
    "status": "running",
    "objective": "Audit Soul CLI against prepared-work-item ideas"
  },
  "workspace": {
    "path": "/Users/adele/Code/klaweht-blog",
    "dirty": true,
    "changed_files": ["src/content/blog/2026-08-10-work-item-as-product-soul-cli.md"]
  },
  "evidence": {
    "verification": [],
    "review": [],
    "open_findings": []
  },
  "recommendation": {
    "state": "ready_for_human_review",
    "next": "Review draft for voice and claims before publishing"
  }
}

That would make the Soul work item feel less like a collection of registry records and more like an inspectable product surface.

The Governance Layer Is Not Bureaucracy

The word governance can sound like the opposite of speed. In practice, it is how speed becomes durable.

The useful question is not:

Can the agent move without permission?

The better question is:

Can the system tell what happened, what crossed a boundary, what evidence exists, and what judgment is still required?

That is the Truss lesson I want Soul to absorb more explicitly.

For code, the model boundary is not only prompt data. It includes repository state, secrets, production credentials, external connectors, user files, network calls, deployment authority, and write access across project boundaries.

Soul already has pieces of this boundary thinking:

  • Provider files route live context through soul pulse instead of embedding stale task state.
  • Registry authority can distinguish local fallback from central reads.
  • soul work verify records command evidence instead of relying on memory.
  • soul work review makes review a durable step.
  • soul work commit validates work metadata before writing history.
  • Finalization is explicit-only, so session memory is not silently rewritten.

But it can go further.

A mature Soul work packet should show:

  • What files changed.
  • What commands ran.
  • What data classes or secret paths were touched, when detectable.
  • Whether external connectors were used.
  • Whether network access happened.
  • Which policy boundary applied.
  • Which verifier evidence exists.
  • Which review evidence exists.
  • Which risks are unresolved.
  • What recommendation follows from the packet.

That is how the prepared-work-item model becomes practical for agentic development.

The Product Is Not the Agent

This is the piece I keep returning to.

The product is not the chatbot. It is not the model. It is not even the CLI.

For Soul, the product is the work item as it moves through a trustworthy loop.

The task makes intent portable.

The run makes attempts honest.

The workspace makes execution isolated.

The verifier makes claims checkable.

The reviewer makes judgment explicit.

The commit links code history to operational memory.

The closeout records why we believed the work was done.

The finalizer preserves the session residue for future context.

That is the actual system.

The agent is just one worker on that system.

What I Would Build Next

After reading Amp and Truss together, I think the next Soul CLI improvements are less about adding another autonomous mode and more about making existing work legible at the work-item level.

First, a soul work packet or soul work receipt command that aggregates task, run, workspace, verifier, review, git, and closeout state into one object.

Second, a lightweight risk classifier for work items. Not a big policy engine at first. Just enough to say: docs-only, code-only, data-path touched, secret-path touched, external connector used, deployment-like action requested, cross-project write, or registry contract change.

Third, a review route recommendation. If the packet touches registry code, route to registry_guardian. If it touches broad architecture, route to systems_architect. If it is text-only, allow an explicit review waiver and record it.

Fourth, a better human review view in Soul Desktop. The operator should not have to read ten registry files. The task should arrive prepared for judgment.

This is the synthesis:

Amp: pave the road so agents can move.
Truss: make the work item prepared and auditable.
Soul: turn agent work into a local, inspectable transaction.

The goal is not to make agents feel more autonomous.

The goal is to make their work accountable enough that autonomy stops being a leap of faith.

Back to main