DeepSeek Harness (dsh) reads SKILL.md from ~/.agents/skills but ignores the hooks: frontmatter, so the skill alone loses plan injection, the write reminder, compaction recovery and the completion gate. Add .dsh/packages/dsh-planning-with-files, a Cordis plugin bundle (npm name dsh-planning-with-files; dsh.bundle.patch inserts the row) that does that work in-process on dsh's lifecycle events: agent/pre-step appends the framed plan, or the ambiguity notice, to the step that carries the user's prompt; tools/post-execute attaches the reminder to write, edit and mutating str_replace_editor calls; agent/session-start with source compact injects the compaction note and the plan; agent/turn-stopping steers a gated agent with the gate reason, never a subagent child. The commands /pwf and /pwf-status and the tools pwf_init, pwf_status and pwf_check register through ctx.inject on the optional commands and tools services, so the listeners load in every profile. Every listener fails open with a ctx.logger.warn. src/core.ts is a byte-identical copy of the OpenCode plugin's core, so plan resolution (PLAN_ID binding, .active_plan, newest slug, legacy root, the fail-closed PWF_PLAN_ROOT pin, nested-root ambiguity), framing, attestation, the gate counters and init behave exactly as there. The package targets the published 0.1.5-rc.2 libraries that the published dsh 0.1.5-rc.2 CLI installs (the libraries' npm latest tags are stale); against those types the lifecycle source arrives on agent/session-start, not on agent/created as in the 0.1.6 alpha source. Vitest drives apply() against a fake Cordis context over real temporary directories, plus the copied core suite (43 tests). The built dist/ is ignored like the OpenCode package's.
76 lines
1.6 KiB
Plaintext
76 lines
1.6 KiB
Plaintext
# OS files
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Editor files
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
.vscode/
|
|
.idea/
|
|
|
|
# Development planning files (meta: I used this skill to build this skill!)
|
|
task_plan.md
|
|
findings.md
|
|
progress.md
|
|
research_notes.md
|
|
notes.md
|
|
|
|
# But keep example and template files
|
|
!examples/*.md
|
|
!examples/**/*.md
|
|
!**/templates/*.md
|
|
|
|
# ClawHub publish/upload folders (managed separately)
|
|
clawdhub-publish/
|
|
clawhub-upload/
|
|
clawhub-changelog.txt
|
|
skill-submission-targets.txt
|
|
|
|
# Claude session files
|
|
.claude/
|
|
|
|
# Keep the skill folder clean
|
|
*.log
|
|
*.tmp
|
|
WIKI_HOME_PAGE.md
|
|
DISCUSSION_2_CONTENT.md
|
|
|
|
# Python bytecode (regenerated locally by pytest and script runs)
|
|
__pycache__/
|
|
*.pyc
|
|
|
|
# Parallel planning runtime state (slug-mode plans, active-plan pointer, attestations)
|
|
.planning/
|
|
.plan-attestation
|
|
|
|
# Git Bash crash dumps (Windows only, generated on unexpected shutdown)
|
|
bash.exe.stackdump
|
|
*.stackdump
|
|
|
|
# plan-it HTML artifact
|
|
plan.html
|
|
|
|
# Personal Claude Code config (do not ship per-developer settings)
|
|
CLAUDE.md
|
|
|
|
# Node.js modules pulled into IDE adapters
|
|
node_modules/
|
|
|
|
# Deferred personal dev/strategy notes (never published)
|
|
.dev-notes/
|
|
|
|
|
|
# v3 large banner exceeds GitHub's 100MB hard limit and stays local permanently
|
|
media/v3-banner-large.png
|
|
|
|
# OpenCode: bun installs plugin deps next to .opencode/package.json; the
|
|
# plugin package keeps its own tracked package-lock.json and builds to dist/.
|
|
.opencode/package-lock.json
|
|
.opencode/bun.lock
|
|
.opencode/packages/*/dist/
|
|
|
|
# DeepSeek Harness: the plugin package keeps its own tracked package-lock.json
|
|
# and builds to dist/, which npm publish ships and git never tracks.
|
|
.dsh/packages/*/dist/
|