Skills rework - #165
Open
davidabram wants to merge 18 commits into
Open
Conversation
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
force-pushed
the
skills-rework
branch
4 times, most recently
from
July 28, 2026 11:53
2f3d9f3 to
f686515
Compare
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
force-pushed
the
skills-rework
branch
from
July 28, 2026 14:21
9be8ee7 to
9b37965
Compare
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.