Skip to content

Skills rework - #165

Open
davidabram wants to merge 18 commits into
mainfrom
skills-rework
Open

Skills rework#165
davidabram wants to merge 18 commits into
mainfrom
skills-rework

Conversation

@davidabram

Copy link
Copy Markdown
Member

No description provided.

Replace the broad agent prompt set with a focused /next-task workflow that
separates readiness review, implementation approval, task execution, and
durable context reconciliation. Add structured contracts, strict plan
argument handling, and explicit blocked and continuation guidance across
workflow handoffs.

Co-authored-by: SCE <sce@crocoder.dev>
@davidabram
davidabram force-pushed the skills-rework branch 4 times, most recently from 2f3d9f3 to f686515 Compare July 28, 2026 11:53
davidabram and others added 11 commits July 28, 2026 16:20
Split durable context loading from plan authoring, add structured contracts
for both phases, and strengthen post-task context reconciliation. Keep the
implementation gate explicit while ensuring /change-to-plan stops after
producing an implementation-ready plan.

Co-authored-by: SCE <sce@crocoder.dev>
Introduce /validate as a report-only final verification phase and add a
separate plan context synchronization skill that runs only after validation
passes. Structured result and report references keep failure, blocking, and
success handoffs unambiguous.
Replace the shared-content catalog with canonical packages for
/change-to-plan, /next-task, and /validate. Generate self-contained Pi,
OpenCode, and Claude skills from workflow-owned Pkl, remove the automated and
legacy workflow trees, and enforce the new inventory in parity checks.

Plan: rebuild-pkl-workflow-markdown (T01, T02, T03, T04, T05, T06, T07, T08, T09)

Co-authored-by: SCE <sce@crocoder.dev>
Stop compiling against committed generated trees. Evaluate canonical Pkl into
Cargo OUT_DIR for repository builds, provide a deterministic packaging
fallback for published and sandboxed builds, and align Nix, crates.io, and
Flatpak paths with the ephemeral payload.

Plan: generate-cli-assets-in-cargo-out-dir (T01, T02, T03)

Co-authored-by: SCE <sce@crocoder.dev>
Materialize the canonical workflow packages at the repository root for local
OpenCode and Claude use while removing superseded agents, commands, and
skills from those trees.
Define durable rules for context loading, planning, implementation approval,
task synchronization, and final validation. Link the new contract from the
context map and align existing workflow guidance with it.

Plan: canonicalize-context-workflow-rules (T01)
Generate a fresh payload before repository Cargo commands and teach Nix and
build.rs to consume an explicit generated-input directory. Add wrapper tests
and update build contracts so Crane no longer evaluates Pkl independently in
each Cargo derivation.

Plan: generate-cli-assets-in-cargo-out-dir (T04, T05, T06)

Co-authored-by: SCE <sce@crocoder.dev>
Reduce task sync output to the durable changes, unresolved gaps, and next
workflow command that users need. Update the canonical Pkl template and all
rendered skill references to share the same concise contract.

Plan: simplify-task-context-sync-report (T01)

Co-authored-by: SCE <sce@crocoder.dev>
Reintroduce /commit as a fourth canonical workflow with explicit ownership:
the command handles staging and the single commit, while sce-atomic-commit
analyzes staged changes and proposes repository-style messages. Render the
self-contained package for Pi, OpenCode, and Claude and enforce the expanded
workflow inventory.

Plan: commit-workflow (T01, T02, T03)

Co-authored-by: SCE <sce@crocoder.dev>
Add --bootstrap-context for context-only initialization and ensure every
successful setup path creates missing durable context files without
replacing existing content. Document the setup contract and cover the new
command surface and filesystem behavior.

Plan: setup-bootstrap-context (T01, T02)

Co-authored-by: SCE <sce@crocoder.dev>
Render structured Claude phase results as human-facing Markdown, then fold
machine-facing contract details directly into each SKILL.md so package-local
references remain presentation-only. Align command handoffs, parser behavior,
metadata coverage, generated skills, and durable architecture guidance with
the single-reference package model.

Plan: claude-markdown-workflow-results (T01)
Plan: skill-references-human-presentation-only (T01, T02)

Co-authored-by: SCE <sce@crocoder.dev>
davidabram and others added 6 commits July 29, 2026 15:03
Collapse Claude workflow orchestration into four self-contained skills with
one output reference each, while preserving the decomposed Pi and OpenCode
packages.

Co-authored-by: SCE <sce@crocoder.dev>
Workflow composition lived in `claude-workflow-results.pkl`, which
imported Claude metadata directly and hardcoded `compatibility: claude`
and the `allowed-tools:` frontmatter line into its skill and command
renderers. Pi and OpenCode cannot reuse it in that shape, so collapsing
them to workflow-level packages would mean duplicating the phase
internalization tables and output layouts per target and guaranteeing
drift between texts meant to be identical.

Rename the module to `workflow-composite.pkl` and make it
target-neutral: `ClaudeWorkflow` becomes `CompositeWorkflow`, the
command-to-workflow-skill slug mapping moves here from
`claude-metadata.pkl`, and `renderSkill`, `renderCommand`, and
`skillDocuments` each take a newline-terminated `extraFrontmatterLines`
string carrying only the frontmatter a target supports. Claude now
passes `compatibility: claude` and its `allowed-tools` line at the call
site and re-exports the shared slug mapping, so its generated bytes are
unchanged while Pi and OpenCode gain a consumable entrypoint.

Co-authored-by: SCE <sce@crocoder.dev>
Pi consumed the canonical phase packages directly, emitting four prompts
carrying full command bodies plus eight self-contained phase-skill
packages. That left Pi on a different composition model than Claude,
even though neither target adds target-specific frontmatter, so the
composite renderer was duplicated work waiting to happen.

pi-content.pkl now renders through the shared workflow-composite.pkl,
passing an empty extra-frontmatter string for both prompts and skills.
Pi emits four thin prompts, each routing to exactly one workflow skill,
and four packages containing only SKILL.md and references/output.md.

The coverage check drops its Claude-specific naming: the expected skill
mapping and document paths become target-neutral, assertClaudeCommandRoute
becomes assertCommandRoute(target, slug, document), and four Pi route
checks are added so Pi prompts are held to the same one-skill routing
rule as Claude commands. OpenCode keeps the canonical phase packages and
byte-identical output.

Co-authored-by: SCE <sce@crocoder.dev>
OpenCode was the last target still emitting the eight canonical phase
packages and per-command phase chains, so its commands carried multi-step
`skills` lists and its agents allowlisted every phase skill individually.
That kept two divergent shapes alive across targets and made the phase
packages a generated output surface rather than an authoring input.

Route opencode-content.pkl through the shared workflow-composite module:
each command now derives a one-entry `entry-skill`/`skills` pair from
`workflowSkillSlugByCommand`, and skill documents render as four two-file
packages with OpenCode metadata only on the entrypoint. The agent
permission allowlists narrow to the four workflow skills. The coverage
check switches OpenCode to `expectedWorkflowSkillDocumentPaths`, adds
per-command route assertions, and drops the now-unused
`expectedCanonicalSkillDocumentPaths` set.

Co-authored-by: SCE <sce@crocoder.dev>
Durable context still described Pi and OpenCode as consuming eight
self-contained phase-skill packages with YAML phase-result contracts,
and scoped the composed single-skill model to Claude alone. That stopped
being true once all three targets began rendering through the shared
workflow composite renderer, leaving the decision records, overview,
architecture, glossary, context map, and the five context/sce workflow
documents contradicting the generated output.

Add a decision record establishing four thin entrypoints plus four
two-file workflow packages for every target, one shared composition
path, and no phase package or phase-result transport anywhere. Mark the
superseded scope inline in the 2026-07-27 and 2026-07-29 Claude records
and in the plan/code agent-separation record, and rewrite the durable
files so the eight phase names denote canonical authoring modules and
internal phases rather than an installed surface. Also narrow the
described OpenCode routing-agent skill allowlists to the four workflow
slugs.

Co-authored-by: SCE <sce@crocoder.dev>
…ackages

Co-authored-by: SCE <sce@crocoder.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant