Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I1801

A scripted capability is a kind, discovered and registered, runnable and projected like any capability

Where it stands

devtask.issue
Readiness
blocked 1 of its dependencies is not DONE
Status
BLOCKED
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
1
Waiting on
Holds back
Behind it in all
1
Evidence
0 of 2
In the waySubjectDetail
issueI1800I1800 is not DONE
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1801

majordomus plan verify I1801

majordomus plan done I1801

What it is

Objective
Make a capability declared in a file of the layer, with a Rhai script as its handler, a capability of the one registry: discovered by the index as a kind, validated with errors naming file and field, runnable through majordomus run, and projected onto the command line, MCP, OpenAPI and the generated reference by the projections that already exist.
Why
ADR 0069 refuses a second registry (project.no-new-nouns). A script reaches the repository only through capabilities, by one host function that calls Context::execute, so validation, redaction, counters and the execution plane apply to every call a script makes; and the host refuses a callee whose effect exceeds the script's declared effect.
Now
Capabilities come from Rust modules and from declarative objects as resources only; nothing turns a layer file into an executable capability.
Wanted
A capability kind with a versioned schema and a script kind beside it; the registry builds an executable capability from each definition; one real scripted capability ships composing read-only capabilities; case 383 drives it end to end.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • a definition with an unknown key or a missing script is refused naming the file and field
  • a compile error names the script file, line and column
  • a runtime error names the script file, line and column
  • a call to a capability whose effect exceeds the declared effect is refused
  • a cancelled execution of a scripted capability stops
  • the scripted capability appears in capabilities list, OpenAPI and MCP after generate with no edit elsewhere
Validation
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib script::bash test/run.sh 383_a_scripted_capability_runs
Evidence required
scripted_capability_projected_everywhereeffect_ceiling_enforced
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
apps/majordomus-clishare.ai/repodocstestSECURITY.md
Not
Migrating shell scripts; that is I1804A function that takes a shell command string
Depends on
Priority
p1
Profile
implementation
Parallel safe
false
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-15
Updated
2026-09-15
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.