deepwork 0.4.0__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- deepwork-0.5.1/.claude/hooks/block_bash_with_instructions.sh +76 -0
- deepwork-0.5.1/.claude/hooks/commit_job_git_commit.sh +4 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/settings.json +18 -1
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.add_capabilities/SKILL.md +1 -42
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.implement/SKILL.md +5 -50
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.research/SKILL.md +1 -44
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.verify/SKILL.md +1 -40
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.commit_and_push/SKILL.md +20 -37
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.lint/SKILL.md +1 -32
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.review/SKILL.md +1 -32
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.test/SKILL.md +1 -34
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.define/SKILL.md +10 -70
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.implement/SKILL.md +10 -64
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.learn/SKILL.md +10 -69
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.review_job_spec/SKILL.md +10 -54
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_rules.define/SKILL.md +1 -3
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.infinite_block_tests/SKILL.md +10 -54
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.reset/SKILL.md +10 -48
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.run_fire_tests/SKILL.md +10 -60
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.run_not_fire_tests/SKILL.md +10 -60
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/update.job/SKILL.md +1 -34
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/job.yml +7 -3
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/commit_and_push.md +19 -3
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/commit_and_push.toml +19 -3
- deepwork-0.5.1/.github/workflows/prepare-release.yml +152 -0
- deepwork-0.5.1/.github/workflows/publish-release.yml +78 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/CHANGELOG.md +42 -1
- {deepwork-0.4.0 → deepwork-0.5.1}/PKG-INFO +1 -1
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/hooks.md +19 -1
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/hooks_system.md +73 -36
- {deepwork-0.4.0 → deepwork-0.5.1}/pyproject.toml +1 -1
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/adapters.py +4 -0
- deepwork-0.5.1/src/deepwork/templates/claude/AGENTS.md +38 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/claude/skill-job-step.md.jinja +73 -89
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_adapters.py +6 -2
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_stop_hooks.py +85 -25
- {deepwork-0.4.0 → deepwork-0.5.1}/uv.lock +1 -1
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform/SKILL.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit/SKILL.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs/SKILL.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_rules/SKILL.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests/SKILL.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/update/SKILL.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/.gitignore +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/config.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/doc_specs/claude_code_skill.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/doc_specs/job_spec.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/add_capabilities.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/implement.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/research.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/verify.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/AGENTS.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/lint.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/review.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/test.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/AGENTS.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/doc_specs/job_spec.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/make_new_job.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/define.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/implement.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/learn.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/review_job_spec.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/supplemental_file_references.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/agents.md.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/job.yml.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/job.yml.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/global_hooks.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/user_prompt_submit.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/.gitkeep +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/api-documentation-sync.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/readme-documentation.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/security-review.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/skill-md-validation.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/source-test-pairing.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/steps/define.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/infinite_block_tests.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/reset.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/run_fire_tests.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/run_not_fire_tests.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/test_reference.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/update/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/update/steps/job.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/architecture-documentation-accuracy.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-command-action.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-created-mode.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-infinite-block-command.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-infinite-block-prompt.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-multi-safety.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-pair-mode.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-set-mode.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-trigger-safety.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/new-standard-job-warning.md.disabled +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/readme-accuracy.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/skill-template-best-practices.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/standard-jobs-source-of-truth.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/uv-lock-sync.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/version-and-changelog-update.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/tmp/.gitkeep +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.envrc +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/add_capabilities.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/implement.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/index.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/research.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/verify.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/index.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/lint.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/review.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/test.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/define.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/implement.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/index.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/learn.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/review_job_spec.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_rules/define.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_rules/index.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/index.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/infinite_block_tests.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/reset.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/run_fire_tests.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/run_not_fire_tests.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/update/index.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/update/job.toml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/copilot-instructions.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/cla.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/claude-code-test.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/copilot-setup-steps.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/release.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/update-claude-code.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/validate.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/.gitignore +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/AGENTS.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/CLA/version_1/CLA.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/CLA/version_1/CLA_SIGNATORIES.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/CONTRIBUTING.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/LICENSE.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/claude.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/architecture.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/debugging_history/AGENTS.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/debugging_history/hooks.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/doc-specs.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/nix-flake.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/cli_configuration.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/learnings.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/cli_configuration.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/hooks.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/hooks_system.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/learnings.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/rules_syntax.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/doc/rules_system_design.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/flake.lock +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/flake.nix +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/job_library/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_command_action/test_command_action.txt +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_command_action/test_command_action_log.txt +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_created_mode/existing_file.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_infinite_block_command/test_infinite_block_command.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_infinite_block_prompt/test_infinite_block_prompt.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety_changelog.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety_version.txt +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_pair_mode/test_pair_mode_expected.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_pair_mode/test_pair_mode_trigger.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_set_mode/test_set_mode_source.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_set_mode/test_set_mode_test.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode_doc.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/nix/claude-code/package-lock.json +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/nix/claude-code/package.nix +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/nix/claude-code/update.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/nix/update +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/hook.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/install.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/main.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/rules.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/sync.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/command_executor.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/detector.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/doc_spec_parser.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/generator.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/hooks_syncer.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/parser.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/pattern_matcher.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/rules_parser.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/rules_queue.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/check_version.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/claude_hook.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/gemini_hook.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/rules_check.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/wrapper.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/doc_spec_schema.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/job_schema.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/rules_schema.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/AGENTS.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/doc_specs/job_spec.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/make_new_job.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/define.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/implement.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/learn.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/review_job_spec.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.template +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/global_hooks.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/user_prompt_submit.sh +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/.gitkeep +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/api-documentation-sync.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/readme-documentation.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/security-review.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/skill-md-validation.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/source-test-pairing.md.example +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/steps/define.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/claude/skill-job-meta.md.jinja +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/gemini/skill-job-meta.toml.jinja +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/gemini/skill-job-step.toml.jinja +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/fs.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/git.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/validation.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/yaml_utils.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/conftest.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/e2e/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/e2e/test_claude_code_integration.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/doc_specs/minimal_doc_spec.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/doc_specs/valid_report.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/comparative_report.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/identify_competitors.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/primary_research.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/secondary_research.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/steps/exposed_step.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/steps/hidden_step.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/steps/classify.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/steps/identify.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/invalid_job/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/job_with_doc_spec/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/job_with_doc_spec/steps/generate_report.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/simple_job/job.yml +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/simple_job/steps/single_step.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_fruits_workflow.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_full_workflow.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_install_flow.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_install_requirements.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/README.md +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/__init__.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/conftest.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_capture_prompt_work_tree.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_check_version.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_hooks.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_make_new_job.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_rules_stop_hook.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_user_prompt_submit.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_command_executor.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_detector.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_doc_spec_parser.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_doc_spec_schema.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_fs.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_generator.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_git.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_hook_wrapper.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_hooks_syncer.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_parser.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_pattern_matcher.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_rules_check.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_rules_parser.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_rules_queue.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_schema_validation.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_validation.py +0 -0
- {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_yaml_utils.py +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# block_bash_with_instructions.sh - Blocks specific bash commands and provides alternative instructions
|
|
3
|
+
#
|
|
4
|
+
# This hook intercepts Bash tool use calls and blocks commands that match
|
|
5
|
+
# specific patterns, providing alternative instructions to the agent.
|
|
6
|
+
#
|
|
7
|
+
# Usage: Registered as a PreToolUse hook in .claude/settings.json
|
|
8
|
+
#
|
|
9
|
+
# Input (stdin): JSON from Claude Code hook system containing tool_name and tool_input
|
|
10
|
+
# Output (stdout): JSON response with error message if blocked
|
|
11
|
+
# Exit codes:
|
|
12
|
+
# 0 - Success (allow action)
|
|
13
|
+
# 2 - Blocking error (prevent action with message)
|
|
14
|
+
|
|
15
|
+
set -e
|
|
16
|
+
|
|
17
|
+
# =============================================================================
|
|
18
|
+
# BLOCKED COMMANDS CONFIGURATION
|
|
19
|
+
# =============================================================================
|
|
20
|
+
# Format: Each entry is a regex pattern followed by a delimiter (|||) and instructions
|
|
21
|
+
# The regex is matched against the full bash command
|
|
22
|
+
# Add new blocked commands here:
|
|
23
|
+
|
|
24
|
+
BLOCKED_COMMANDS=(
|
|
25
|
+
'git[[:space:]]+commit|||All commits must be done via the `/commit` skill. Do not use git commit directly. Instead, run `/commit` to start the commit workflow which includes code review, testing, and linting before committing.'
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# =============================================================================
|
|
29
|
+
# HOOK LOGIC - DO NOT MODIFY BELOW UNLESS NECESSARY
|
|
30
|
+
# =============================================================================
|
|
31
|
+
|
|
32
|
+
# Read stdin into variable
|
|
33
|
+
HOOK_INPUT=""
|
|
34
|
+
if [ ! -t 0 ]; then
|
|
35
|
+
HOOK_INPUT=$(cat)
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# Exit early if no input
|
|
39
|
+
if [ -z "${HOOK_INPUT}" ]; then
|
|
40
|
+
exit 0
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# Extract tool_name from input
|
|
44
|
+
TOOL_NAME=$(echo "${HOOK_INPUT}" | jq -r '.tool_name // empty' 2>/dev/null)
|
|
45
|
+
|
|
46
|
+
# Only process Bash tool calls
|
|
47
|
+
if [ "${TOOL_NAME}" != "Bash" ]; then
|
|
48
|
+
exit 0
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# Extract the command from tool_input
|
|
52
|
+
COMMAND=$(echo "${HOOK_INPUT}" | jq -r '.tool_input.command // empty' 2>/dev/null)
|
|
53
|
+
|
|
54
|
+
# Exit if no command
|
|
55
|
+
if [ -z "${COMMAND}" ]; then
|
|
56
|
+
exit 0
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# Check each blocked pattern
|
|
60
|
+
for entry in "${BLOCKED_COMMANDS[@]}"; do
|
|
61
|
+
# Split entry by delimiter
|
|
62
|
+
pattern="${entry%%|||*}"
|
|
63
|
+
instructions="${entry##*|||}"
|
|
64
|
+
|
|
65
|
+
# Check if command matches pattern (using extended regex)
|
|
66
|
+
if echo "${COMMAND}" | grep -qE "${pattern}"; then
|
|
67
|
+
# Output error message as JSON
|
|
68
|
+
cat << EOF
|
|
69
|
+
{"error": "${instructions}"}
|
|
70
|
+
EOF
|
|
71
|
+
exit 2
|
|
72
|
+
fi
|
|
73
|
+
done
|
|
74
|
+
|
|
75
|
+
# Command is allowed
|
|
76
|
+
exit 0
|
|
@@ -123,10 +123,27 @@
|
|
|
123
123
|
"Bash(deepwork rules clear_queue)",
|
|
124
124
|
"Bash(rm -rf .deepwork/tmp/rules/queue/*.json)",
|
|
125
125
|
"Skill(manual_tests.reset)",
|
|
126
|
-
"Skill(manual_tests.infinite_block_tests)"
|
|
126
|
+
"Skill(manual_tests.infinite_block_tests)",
|
|
127
|
+
"Read(./.deepwork/**)",
|
|
128
|
+
"Edit(./.deepwork/**)",
|
|
129
|
+
"Write(./.deepwork/**)",
|
|
130
|
+
"Bash(deepwork:*)",
|
|
131
|
+
"Bash(.claude/hooks/commit_job_git_commit.sh:*)",
|
|
132
|
+
"Bash(./.deepwork/jobs/deepwork_jobs/make_new_job.sh:*)"
|
|
127
133
|
]
|
|
128
134
|
},
|
|
129
135
|
"hooks": {
|
|
136
|
+
"PreToolUse": [
|
|
137
|
+
{
|
|
138
|
+
"matcher": "Bash",
|
|
139
|
+
"hooks": [
|
|
140
|
+
{
|
|
141
|
+
"type": "command",
|
|
142
|
+
"command": ".claude/hooks/block_bash_with_instructions.sh"
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
],
|
|
130
147
|
"SessionStart": [
|
|
131
148
|
{
|
|
132
149
|
"matcher": "",
|
|
@@ -1,39 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: add_platform.add_capabilities
|
|
3
|
-
description: "Updates job schema and adapters with any new hook events the platform supports. Use after research to extend DeepWork's hook system."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the capability additions meet ALL criteria:
|
|
11
|
-
1. Any new hooks from the platform (for slash commands only) are added to src/deepwork/schemas/job_schema.py
|
|
12
|
-
2. All existing adapters in src/deepwork/adapters.py are updated with the new hook fields
|
|
13
|
-
(set to None/null if the platform doesn't support that hook)
|
|
14
|
-
3. Only hooks available on slash command definitions are added (not general CLI hooks)
|
|
15
|
-
4. job_schema.py remains valid Python with no syntax errors
|
|
16
|
-
5. adapters.py remains consistent - all adapters have the same hook fields
|
|
17
|
-
6. If no new hooks are needed, document why in a comment
|
|
18
|
-
|
|
19
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
20
|
-
|
|
21
|
-
SubagentStop:
|
|
22
|
-
- hooks:
|
|
23
|
-
- type: prompt
|
|
24
|
-
prompt: |
|
|
25
|
-
Verify the capability additions meet ALL criteria:
|
|
26
|
-
1. Any new hooks from the platform (for slash commands only) are added to src/deepwork/schemas/job_schema.py
|
|
27
|
-
2. All existing adapters in src/deepwork/adapters.py are updated with the new hook fields
|
|
28
|
-
(set to None/null if the platform doesn't support that hook)
|
|
29
|
-
3. Only hooks available on slash command definitions are added (not general CLI hooks)
|
|
30
|
-
4. job_schema.py remains valid Python with no syntax errors
|
|
31
|
-
5. adapters.py remains consistent - all adapters have the same hook fields
|
|
32
|
-
6. If no new hooks are needed, document why in a comment
|
|
33
|
-
|
|
34
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
35
|
-
|
|
36
|
-
---
|
|
3
|
+
description: "Updates job schema and adapters with any new hook events the platform supports. Use after research to extend DeepWork's hook system."user-invocable: false---
|
|
37
4
|
|
|
38
5
|
# add_platform.add_capabilities
|
|
39
6
|
|
|
@@ -233,14 +200,6 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
|
|
|
233
200
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
234
201
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
235
202
|
|
|
236
|
-
## Quality Validation
|
|
237
|
-
|
|
238
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
243
|
-
|
|
244
203
|
## On Completion
|
|
245
204
|
|
|
246
205
|
1. Verify outputs are created
|
|
@@ -1,47 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: add_platform.implement
|
|
3
|
-
description: "Creates platform adapter, templates, tests with 100% coverage, and README documentation. Use after adding hook capabilities."
|
|
4
|
-
|
|
5
|
-
hooks:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- type: command
|
|
9
|
-
command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"
|
|
10
|
-
- type: prompt
|
|
11
|
-
prompt: |
|
|
12
|
-
Verify the implementation meets ALL criteria:
|
|
13
|
-
1. Platform adapter class is added to src/deepwork/adapters.py
|
|
14
|
-
2. Templates exist in src/deepwork/templates/<platform>/ with appropriate command structure
|
|
15
|
-
3. Tests exist for all new functionality
|
|
16
|
-
4. Test coverage is 100% for new code (run: uv run pytest --cov)
|
|
17
|
-
5. All tests pass
|
|
18
|
-
6. README.md is updated with:
|
|
19
|
-
- New platform listed in supported platforms
|
|
20
|
-
- Installation instructions for the platform
|
|
21
|
-
- Any platform-specific notes
|
|
22
|
-
|
|
23
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
24
|
-
|
|
25
|
-
SubagentStop:
|
|
26
|
-
- hooks:
|
|
27
|
-
- type: command
|
|
28
|
-
command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"
|
|
29
|
-
- type: prompt
|
|
30
|
-
prompt: |
|
|
31
|
-
Verify the implementation meets ALL criteria:
|
|
32
|
-
1. Platform adapter class is added to src/deepwork/adapters.py
|
|
33
|
-
2. Templates exist in src/deepwork/templates/<platform>/ with appropriate command structure
|
|
34
|
-
3. Tests exist for all new functionality
|
|
35
|
-
4. Test coverage is 100% for new code (run: uv run pytest --cov)
|
|
36
|
-
5. All tests pass
|
|
37
|
-
6. README.md is updated with:
|
|
38
|
-
- New platform listed in supported platforms
|
|
39
|
-
- Installation instructions for the platform
|
|
40
|
-
- Any platform-specific notes
|
|
41
|
-
|
|
42
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
43
|
-
|
|
44
|
-
---
|
|
3
|
+
description: "Creates platform adapter, templates, tests with 100% coverage, and README documentation. Use after adding hook capabilities."user-invocable: falsehooks: Stop:
|
|
4
|
+
- hooks: - type: command
|
|
5
|
+
command: ".deepwork/jobs/add_platform/hooks/run_tests.sh" SubagentStop:
|
|
6
|
+
- hooks: - type: command
|
|
7
|
+
command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"---
|
|
45
8
|
|
|
46
9
|
# add_platform.implement
|
|
47
10
|
|
|
@@ -336,15 +299,7 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
|
|
|
336
299
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
337
300
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
338
301
|
|
|
339
|
-
## Quality Validation
|
|
340
|
-
|
|
341
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
342
|
-
|
|
343
|
-
|
|
344
302
|
**Validation script**: `.deepwork/jobs/add_platform/hooks/run_tests.sh` (runs automatically)
|
|
345
|
-
|
|
346
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
347
|
-
|
|
348
303
|
## On Completion
|
|
349
304
|
|
|
350
305
|
1. Verify outputs are created
|
|
@@ -1,41 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: add_platform.research
|
|
3
|
-
description: "Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the research output meets ALL criteria:
|
|
11
|
-
1. Both files exist in doc/platforms/<platform>/: cli_configuration.md and hooks_system.md
|
|
12
|
-
2. Each file has a comment at the top with:
|
|
13
|
-
- Last updated date
|
|
14
|
-
- Source URL where the documentation was obtained
|
|
15
|
-
3. cli_configuration.md covers how the platform's CLI is configured
|
|
16
|
-
4. hooks_system.md covers hooks available for slash command definitions ONLY
|
|
17
|
-
5. No extraneous documentation (only these two specific topics)
|
|
18
|
-
6. Documentation is comprehensive enough to implement the platform
|
|
19
|
-
|
|
20
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
21
|
-
|
|
22
|
-
SubagentStop:
|
|
23
|
-
- hooks:
|
|
24
|
-
- type: prompt
|
|
25
|
-
prompt: |
|
|
26
|
-
Verify the research output meets ALL criteria:
|
|
27
|
-
1. Both files exist in doc/platforms/<platform>/: cli_configuration.md and hooks_system.md
|
|
28
|
-
2. Each file has a comment at the top with:
|
|
29
|
-
- Last updated date
|
|
30
|
-
- Source URL where the documentation was obtained
|
|
31
|
-
3. cli_configuration.md covers how the platform's CLI is configured
|
|
32
|
-
4. hooks_system.md covers hooks available for slash command definitions ONLY
|
|
33
|
-
5. No extraneous documentation (only these two specific topics)
|
|
34
|
-
6. Documentation is comprehensive enough to implement the platform
|
|
35
|
-
|
|
36
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
37
|
-
|
|
38
|
-
---
|
|
3
|
+
description: "Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration."user-invocable: false---
|
|
39
4
|
|
|
40
5
|
# add_platform.research
|
|
41
6
|
|
|
@@ -284,14 +249,6 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
|
|
|
284
249
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
285
250
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
286
251
|
|
|
287
|
-
## Quality Validation
|
|
288
|
-
|
|
289
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
294
|
-
|
|
295
252
|
## On Completion
|
|
296
253
|
|
|
297
254
|
1. Verify outputs are created
|
|
@@ -1,37 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: add_platform.verify
|
|
3
|
-
description: "Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the installation meets ALL criteria:
|
|
11
|
-
1. Platform-specific directories/files are added to the deepwork repo as needed
|
|
12
|
-
2. Running `deepwork install --platform <platform>` completes without errors
|
|
13
|
-
3. Expected command files are created in the platform's command directory
|
|
14
|
-
4. Command file content matches the templates and job definitions
|
|
15
|
-
5. Established DeepWork jobs (deepwork_jobs, deepwork_rules) are installed correctly
|
|
16
|
-
6. The platform can be used alongside existing platforms without conflicts
|
|
17
|
-
|
|
18
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
19
|
-
|
|
20
|
-
SubagentStop:
|
|
21
|
-
- hooks:
|
|
22
|
-
- type: prompt
|
|
23
|
-
prompt: |
|
|
24
|
-
Verify the installation meets ALL criteria:
|
|
25
|
-
1. Platform-specific directories/files are added to the deepwork repo as needed
|
|
26
|
-
2. Running `deepwork install --platform <platform>` completes without errors
|
|
27
|
-
3. Expected command files are created in the platform's command directory
|
|
28
|
-
4. Command file content matches the templates and job definitions
|
|
29
|
-
5. Established DeepWork jobs (deepwork_jobs, deepwork_rules) are installed correctly
|
|
30
|
-
6. The platform can be used alongside existing platforms without conflicts
|
|
31
|
-
|
|
32
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
33
|
-
|
|
34
|
-
---
|
|
3
|
+
description: "Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration."user-invocable: false---
|
|
35
4
|
|
|
36
5
|
# add_platform.verify
|
|
37
6
|
|
|
@@ -206,14 +175,6 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
|
|
|
206
175
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
207
176
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
208
177
|
|
|
209
|
-
## Quality Validation
|
|
210
|
-
|
|
211
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
216
|
-
|
|
217
178
|
## On Completion
|
|
218
179
|
|
|
219
180
|
1. Verify outputs are created
|
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commit.commit_and_push
|
|
3
|
-
description: "Verifies changed files, creates commit, and pushes to remote. Use after linting passes to finalize changes."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the commit is ready:
|
|
11
|
-
1. Changed files list was reviewed by the agent
|
|
12
|
-
2. Files match what was modified during this session (or unexpected changes were investigated)
|
|
13
|
-
3. Commit was created with appropriate message
|
|
14
|
-
4. Changes were pushed to remote
|
|
15
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
16
|
-
|
|
17
|
-
SubagentStop:
|
|
18
|
-
- hooks:
|
|
19
|
-
- type: prompt
|
|
20
|
-
prompt: |
|
|
21
|
-
Verify the commit is ready:
|
|
22
|
-
1. Changed files list was reviewed by the agent
|
|
23
|
-
2. Files match what was modified during this session (or unexpected changes were investigated)
|
|
24
|
-
3. Commit was created with appropriate message
|
|
25
|
-
4. Changes were pushed to remote
|
|
26
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
27
|
-
|
|
28
|
-
---
|
|
3
|
+
description: "Verifies changed files, creates commit, and pushes to remote. Use after linting passes to finalize changes."user-invocable: false---
|
|
29
4
|
|
|
30
5
|
# commit.commit_and_push
|
|
31
6
|
|
|
@@ -68,14 +43,27 @@ Check the list of changed files against what was modified during this session, e
|
|
|
68
43
|
- Are there any unexpected deleted files?
|
|
69
44
|
- Do the line counts seem reasonable for the changes you made?
|
|
70
45
|
|
|
71
|
-
If changes match expectations, proceed to
|
|
46
|
+
If changes match expectations, proceed to the next step.
|
|
72
47
|
|
|
73
48
|
If there are unexpected changes:
|
|
74
49
|
- Investigate why (e.g., lint auto-fixes, generated files)
|
|
75
50
|
- If they're legitimate side effects of your work, include them
|
|
76
51
|
- If they're unrelated or shouldn't be committed, use `git restore` to discard them
|
|
77
52
|
|
|
78
|
-
3. **
|
|
53
|
+
3. **Update CHANGELOG.md if needed**
|
|
54
|
+
|
|
55
|
+
If your changes include new features, bug fixes, or other notable changes:
|
|
56
|
+
- Add entries to the `## [Unreleased]` section of CHANGELOG.md
|
|
57
|
+
- Use the appropriate subsection: `### Added`, `### Changed`, `### Fixed`, or `### Removed`
|
|
58
|
+
- Write concise descriptions that explain the user-facing impact
|
|
59
|
+
|
|
60
|
+
**CRITICAL: NEVER modify version numbers**
|
|
61
|
+
- Do NOT change the version in `pyproject.toml`
|
|
62
|
+
- Do NOT change version headers in CHANGELOG.md (e.g., `## [0.4.2]`)
|
|
63
|
+
- Do NOT rename the `## [Unreleased]` section
|
|
64
|
+
- Version updates are handled by the release workflow, not commits
|
|
65
|
+
|
|
66
|
+
4. **Stage all appropriate changes**
|
|
79
67
|
```bash
|
|
80
68
|
git add -A
|
|
81
69
|
```
|
|
@@ -93,8 +81,9 @@ Check the list of changed files against what was modified during this session, e
|
|
|
93
81
|
- The style of recent commits
|
|
94
82
|
- Conventional commit format if the project uses it
|
|
95
83
|
|
|
84
|
+
**IMPORTANT:** Use the commit job script (not `git commit` directly):
|
|
96
85
|
```bash
|
|
97
|
-
|
|
86
|
+
.claude/hooks/commit_job_git_commit.sh -m "commit message here"
|
|
98
87
|
```
|
|
99
88
|
|
|
100
89
|
7. **Push to remote**
|
|
@@ -110,6 +99,8 @@ Check the list of changed files against what was modified during this session, e
|
|
|
110
99
|
|
|
111
100
|
- Changed files list was reviewed by the agent
|
|
112
101
|
- Files match what was modified during this session (or unexpected changes were investigated and handled)
|
|
102
|
+
- CHANGELOG.md was updated with entries in the `[Unreleased]` section (if changes warrant documentation)
|
|
103
|
+
- Version numbers were NOT modified (in pyproject.toml or CHANGELOG.md version headers)
|
|
113
104
|
- Commit message follows project conventions
|
|
114
105
|
- Commit was created successfully
|
|
115
106
|
- Changes were pushed to remote
|
|
@@ -156,14 +147,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
|
|
|
156
147
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
157
148
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
158
149
|
|
|
159
|
-
## Quality Validation
|
|
160
|
-
|
|
161
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
166
|
-
|
|
167
150
|
## On Completion
|
|
168
151
|
|
|
169
152
|
1. Verify outputs are created
|
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commit.lint
|
|
3
|
-
description: "Formats and lints code with ruff using a sub-agent. Use after tests pass to ensure code style compliance."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the linting is complete:
|
|
11
|
-
1. ruff format was run successfully
|
|
12
|
-
2. ruff check was run successfully (with --fix)
|
|
13
|
-
3. No remaining lint errors
|
|
14
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
15
|
-
|
|
16
|
-
SubagentStop:
|
|
17
|
-
- hooks:
|
|
18
|
-
- type: prompt
|
|
19
|
-
prompt: |
|
|
20
|
-
Verify the linting is complete:
|
|
21
|
-
1. ruff format was run successfully
|
|
22
|
-
2. ruff check was run successfully (with --fix)
|
|
23
|
-
3. No remaining lint errors
|
|
24
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
25
|
-
|
|
26
|
-
---
|
|
3
|
+
description: "Formats and lints code with ruff using a sub-agent. Use after tests pass to ensure code style compliance."user-invocable: false---
|
|
27
4
|
|
|
28
5
|
# commit.lint
|
|
29
6
|
|
|
@@ -150,14 +127,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
|
|
|
150
127
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
151
128
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
152
129
|
|
|
153
|
-
## Quality Validation
|
|
154
|
-
|
|
155
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
160
|
-
|
|
161
130
|
## On Completion
|
|
162
131
|
|
|
163
132
|
1. Verify outputs are created
|
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commit.review
|
|
3
|
-
description: "Reviews changed code for issues, DRY opportunities, naming clarity, and test coverage using a sub-agent. Use as the first step before testing."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the code review is complete:
|
|
11
|
-
1. Changed files were identified
|
|
12
|
-
2. Sub-agent reviewed the code for general issues, DRY opportunities, naming clarity, and test coverage
|
|
13
|
-
3. All identified issues were addressed or documented as intentional
|
|
14
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
15
|
-
|
|
16
|
-
SubagentStop:
|
|
17
|
-
- hooks:
|
|
18
|
-
- type: prompt
|
|
19
|
-
prompt: |
|
|
20
|
-
Verify the code review is complete:
|
|
21
|
-
1. Changed files were identified
|
|
22
|
-
2. Sub-agent reviewed the code for general issues, DRY opportunities, naming clarity, and test coverage
|
|
23
|
-
3. All identified issues were addressed or documented as intentional
|
|
24
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
25
|
-
|
|
26
|
-
---
|
|
3
|
+
description: "Reviews changed code for issues, DRY opportunities, naming clarity, and test coverage using a sub-agent. Use as the first step before testing."user-invocable: false---
|
|
27
4
|
|
|
28
5
|
# commit.review
|
|
29
6
|
|
|
@@ -179,14 +156,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
|
|
|
179
156
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
180
157
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
181
158
|
|
|
182
|
-
## Quality Validation
|
|
183
|
-
|
|
184
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
189
|
-
|
|
190
159
|
## On Completion
|
|
191
160
|
|
|
192
161
|
1. Verify outputs are created
|
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: commit.test
|
|
3
|
-
description: "Pulls latest code and runs tests until all pass. Use after code review passes to verify changes work correctly."
|
|
4
|
-
user-invocable: false
|
|
5
|
-
hooks:
|
|
6
|
-
Stop:
|
|
7
|
-
- hooks:
|
|
8
|
-
- type: prompt
|
|
9
|
-
prompt: |
|
|
10
|
-
Verify the tests are passing:
|
|
11
|
-
1. Latest code was pulled from the branch
|
|
12
|
-
2. All tests completed successfully
|
|
13
|
-
3. No test failures or errors remain
|
|
14
|
-
4. Test output shows passing status
|
|
15
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
16
|
-
|
|
17
|
-
SubagentStop:
|
|
18
|
-
- hooks:
|
|
19
|
-
- type: prompt
|
|
20
|
-
prompt: |
|
|
21
|
-
Verify the tests are passing:
|
|
22
|
-
1. Latest code was pulled from the branch
|
|
23
|
-
2. All tests completed successfully
|
|
24
|
-
3. No test failures or errors remain
|
|
25
|
-
4. Test output shows passing status
|
|
26
|
-
If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
|
|
27
|
-
|
|
28
|
-
---
|
|
3
|
+
description: "Pulls latest code and runs tests until all pass. Use after code review passes to verify changes work correctly."user-invocable: false---
|
|
29
4
|
|
|
30
5
|
# commit.test
|
|
31
6
|
|
|
@@ -138,14 +113,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
|
|
|
138
113
|
- Do NOT proceed without required inputs; ask the user if any are missing
|
|
139
114
|
- Do NOT modify files outside the scope of this step's defined outputs
|
|
140
115
|
|
|
141
|
-
## Quality Validation
|
|
142
|
-
|
|
143
|
-
Stop hooks will automatically validate your work. The loop continues until all criteria pass.
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
**To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
|
|
148
|
-
|
|
149
116
|
## On Completion
|
|
150
117
|
|
|
151
118
|
1. Verify outputs are created
|