code-puppy-core-plugins 0.0.2__py3-none-any.whl
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.
- code_puppy_core_plugins/__init__.py +5 -0
- code_puppy_core_plugins/acp/README.md +266 -0
- code_puppy_core_plugins/acp/__init__.py +8 -0
- code_puppy_core_plugins/acp/agent.py +494 -0
- code_puppy_core_plugins/acp/bridge.py +309 -0
- code_puppy_core_plugins/acp/capabilities.py +73 -0
- code_puppy_core_plugins/acp/commands.py +116 -0
- code_puppy_core_plugins/acp/content.py +115 -0
- code_puppy_core_plugins/acp/io_delegation.py +231 -0
- code_puppy_core_plugins/acp/mcp_config.py +66 -0
- code_puppy_core_plugins/acp/permissions.py +159 -0
- code_puppy_core_plugins/acp/persistence.py +197 -0
- code_puppy_core_plugins/acp/register_callbacks.py +110 -0
- code_puppy_core_plugins/acp/replay.py +114 -0
- code_puppy_core_plugins/acp/session.py +329 -0
- code_puppy_core_plugins/acp/session_config.py +179 -0
- code_puppy_core_plugins/acp/state.py +135 -0
- code_puppy_core_plugins/agent_skills/__init__.py +22 -0
- code_puppy_core_plugins/agent_skills/config.py +208 -0
- code_puppy_core_plugins/agent_skills/discovery.py +337 -0
- code_puppy_core_plugins/agent_skills/downloader.py +392 -0
- code_puppy_core_plugins/agent_skills/enabled_skills.py +82 -0
- code_puppy_core_plugins/agent_skills/installer.py +22 -0
- code_puppy_core_plugins/agent_skills/metadata.py +219 -0
- code_puppy_core_plugins/agent_skills/prompt_builder.py +49 -0
- code_puppy_core_plugins/agent_skills/provider.py +52 -0
- code_puppy_core_plugins/agent_skills/register_callbacks.py +309 -0
- code_puppy_core_plugins/agent_skills/remote_catalog.py +322 -0
- code_puppy_core_plugins/agent_skills/skill_catalog.py +257 -0
- code_puppy_core_plugins/agent_skills/skill_commands.py +102 -0
- code_puppy_core_plugins/agent_skills/skills_install_menu.py +698 -0
- code_puppy_core_plugins/agent_skills/skills_menu.py +794 -0
- code_puppy_core_plugins/aws_bedrock/__init__.py +14 -0
- code_puppy_core_plugins/aws_bedrock/config.py +101 -0
- code_puppy_core_plugins/aws_bedrock/register_callbacks.py +243 -0
- code_puppy_core_plugins/aws_bedrock/utils.py +186 -0
- code_puppy_core_plugins/azure_foundry/README.md +238 -0
- code_puppy_core_plugins/azure_foundry/__init__.py +15 -0
- code_puppy_core_plugins/azure_foundry/config.py +126 -0
- code_puppy_core_plugins/azure_foundry/discovery.py +189 -0
- code_puppy_core_plugins/azure_foundry/register_callbacks.py +506 -0
- code_puppy_core_plugins/azure_foundry/token.py +182 -0
- code_puppy_core_plugins/azure_foundry/utils.py +375 -0
- code_puppy_core_plugins/btw/__init__.py +1 -0
- code_puppy_core_plugins/btw/inline_view.py +135 -0
- code_puppy_core_plugins/btw/register_callbacks.py +106 -0
- code_puppy_core_plugins/btw/side_query.py +91 -0
- code_puppy_core_plugins/chatgpt_oauth/IMAGEGEN_SKILL.md +83 -0
- code_puppy_core_plugins/chatgpt_oauth/__init__.py +8 -0
- code_puppy_core_plugins/chatgpt_oauth/config.py +52 -0
- code_puppy_core_plugins/chatgpt_oauth/image_generation.py +253 -0
- code_puppy_core_plugins/chatgpt_oauth/image_tool.py +70 -0
- code_puppy_core_plugins/chatgpt_oauth/oauth_flow.py +461 -0
- code_puppy_core_plugins/chatgpt_oauth/register_callbacks.py +288 -0
- code_puppy_core_plugins/chatgpt_oauth/test_plugin.py +663 -0
- code_puppy_core_plugins/chatgpt_oauth/usage.py +113 -0
- code_puppy_core_plugins/chatgpt_oauth/utils.py +534 -0
- code_puppy_core_plugins/claude_code_hooks/__init__.py +1 -0
- code_puppy_core_plugins/claude_code_hooks/config.py +137 -0
- code_puppy_core_plugins/claude_code_hooks/register_callbacks.py +383 -0
- code_puppy_core_plugins/claude_code_oauth/README.md +167 -0
- code_puppy_core_plugins/claude_code_oauth/SETUP.md +93 -0
- code_puppy_core_plugins/claude_code_oauth/__init__.py +25 -0
- code_puppy_core_plugins/claude_code_oauth/config.py +59 -0
- code_puppy_core_plugins/claude_code_oauth/fast_mode.py +122 -0
- code_puppy_core_plugins/claude_code_oauth/prompt_handler.py +64 -0
- code_puppy_core_plugins/claude_code_oauth/register_callbacks.py +719 -0
- code_puppy_core_plugins/claude_code_oauth/test_plugin.py +285 -0
- code_puppy_core_plugins/claude_code_oauth/token_refresh_heartbeat.py +240 -0
- code_puppy_core_plugins/claude_code_oauth/utils.py +663 -0
- code_puppy_core_plugins/code_puppy_agent/AGENTS_AND_TOOLS.md +155 -0
- code_puppy_core_plugins/code_puppy_agent/MODELS_AND_MCP.md +104 -0
- code_puppy_core_plugins/code_puppy_agent/PLUGINS_AND_CALLBACKS.md +147 -0
- code_puppy_core_plugins/code_puppy_agent/SESSIONS_AND_HISTORY.md +39 -0
- code_puppy_core_plugins/code_puppy_agent/SKILL.md +180 -0
- code_puppy_core_plugins/code_puppy_agent/SKILLS_SYSTEM.md +136 -0
- code_puppy_core_plugins/code_puppy_agent/SYSTEM_PROMPT_CONFIG_AND_I18N.md +160 -0
- code_puppy_core_plugins/code_puppy_agent/__init__.py +5 -0
- code_puppy_core_plugins/code_puppy_agent/register_callbacks.py +46 -0
- code_puppy_core_plugins/computer_use/NativeCapture.swift +123 -0
- code_puppy_core_plugins/computer_use/README.md +109 -0
- code_puppy_core_plugins/computer_use/__init__.py +1 -0
- code_puppy_core_plugins/computer_use/accessibility.py +163 -0
- code_puppy_core_plugins/computer_use/activation.py +75 -0
- code_puppy_core_plugins/computer_use/backend.py +584 -0
- code_puppy_core_plugins/computer_use/backend_types.py +5 -0
- code_puppy_core_plugins/computer_use/capture.py +110 -0
- code_puppy_core_plugins/computer_use/commands.py +62 -0
- code_puppy_core_plugins/computer_use/geometry.py +81 -0
- code_puppy_core_plugins/computer_use/inline_image.py +56 -0
- code_puppy_core_plugins/computer_use/keycodes.py +47 -0
- code_puppy_core_plugins/computer_use/policy.py +144 -0
- code_puppy_core_plugins/computer_use/register_callbacks.py +96 -0
- code_puppy_core_plugins/computer_use/safety.py +18 -0
- code_puppy_core_plugins/computer_use/settle.py +64 -0
- code_puppy_core_plugins/computer_use/state.py +86 -0
- code_puppy_core_plugins/computer_use/tools.py +469 -0
- code_puppy_core_plugins/context_indicator/__init__.py +14 -0
- code_puppy_core_plugins/context_indicator/register_callbacks.py +249 -0
- code_puppy_core_plugins/context_indicator/usage.py +40 -0
- code_puppy_core_plugins/copilot_auth/__init__.py +11 -0
- code_puppy_core_plugins/copilot_auth/config.py +93 -0
- code_puppy_core_plugins/copilot_auth/reasoning_client.py +409 -0
- code_puppy_core_plugins/copilot_auth/register_callbacks.py +460 -0
- code_puppy_core_plugins/copilot_auth/utils.py +587 -0
- code_puppy_core_plugins/customizable_commands/__init__.py +0 -0
- code_puppy_core_plugins/customizable_commands/register_callbacks.py +464 -0
- code_puppy_core_plugins/dbos_durable_exec/__init__.py +1 -0
- code_puppy_core_plugins/dbos_durable_exec/cancel.py +15 -0
- code_puppy_core_plugins/dbos_durable_exec/commands.py +31 -0
- code_puppy_core_plugins/dbos_durable_exec/config.py +31 -0
- code_puppy_core_plugins/dbos_durable_exec/lifecycle.py +83 -0
- code_puppy_core_plugins/dbos_durable_exec/register_callbacks.py +45 -0
- code_puppy_core_plugins/dbos_durable_exec/runtime.py +65 -0
- code_puppy_core_plugins/dbos_durable_exec/startup_lock.py +155 -0
- code_puppy_core_plugins/dbos_durable_exec/workflow_ids.py +16 -0
- code_puppy_core_plugins/dbos_durable_exec/wrapper.py +58 -0
- code_puppy_core_plugins/destructive_command_guard/AGENTS.md +79 -0
- code_puppy_core_plugins/destructive_command_guard/__init__.py +14 -0
- code_puppy_core_plugins/destructive_command_guard/detector.py +374 -0
- code_puppy_core_plugins/destructive_command_guard/register_callbacks.py +165 -0
- code_puppy_core_plugins/emoji_filter/__init__.py +12 -0
- code_puppy_core_plugins/emoji_filter/config.py +26 -0
- code_puppy_core_plugins/emoji_filter/register_callbacks.py +238 -0
- code_puppy_core_plugins/emoji_filter/stripper.py +45 -0
- code_puppy_core_plugins/empty_html_comment_filter/register_callbacks.py +116 -0
- code_puppy_core_plugins/example_custom_command/README.md +328 -0
- code_puppy_core_plugins/example_custom_command/register_callbacks.py +66 -0
- code_puppy_core_plugins/file_permission_handler/__init__.py +4 -0
- code_puppy_core_plugins/file_permission_handler/register_callbacks.py +575 -0
- code_puppy_core_plugins/flux_bootstrap/__init__.py +5 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/README.md +173 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/cheatsheet.md +86 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/pipeline.md +167 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/_docs/synopsis.md +392 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/about.md +51 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/address-feedback.md +129 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/ask.md +211 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/aug.md +181 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/auto-pilot.md +71 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/cheatsheet.md +16 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/commit.md +103 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/config.md +108 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/create-pr.md +195 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/exec.md +221 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/new.md +151 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/qa.md +208 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/rebase.md +180 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/review.md +304 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/split.md +120 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/squash-commits.md +179 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/status.md +46 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/commands/flux/tests.md +155 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_about.py +154 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_cheatsheet.py +248 -0
- code_puppy_core_plugins/flux_bootstrap/bundled/scripts/flux_status.py +345 -0
- code_puppy_core_plugins/flux_bootstrap/installer.py +256 -0
- code_puppy_core_plugins/flux_bootstrap/register_callbacks.py +71 -0
- code_puppy_core_plugins/force_push_guard/__init__.py +5 -0
- code_puppy_core_plugins/force_push_guard/detector.py +96 -0
- code_puppy_core_plugins/force_push_guard/register_callbacks.py +161 -0
- code_puppy_core_plugins/fork/__init__.py +7 -0
- code_puppy_core_plugins/fork/register_callbacks.py +445 -0
- code_puppy_core_plugins/frontend_emitter/__init__.py +25 -0
- code_puppy_core_plugins/frontend_emitter/emitter.py +249 -0
- code_puppy_core_plugins/frontend_emitter/register_callbacks.py +412 -0
- code_puppy_core_plugins/frontend_emitter/session_context.py +50 -0
- code_puppy_core_plugins/grok_oauth/__init__.py +6 -0
- code_puppy_core_plugins/grok_oauth/config.py +49 -0
- code_puppy_core_plugins/grok_oauth/oauth_flow.py +213 -0
- code_puppy_core_plugins/grok_oauth/register_callbacks.py +132 -0
- code_puppy_core_plugins/grok_oauth/utils.py +195 -0
- code_puppy_core_plugins/herdr/README.md +168 -0
- code_puppy_core_plugins/herdr/__init__.py +9 -0
- code_puppy_core_plugins/herdr/client.py +339 -0
- code_puppy_core_plugins/herdr/register_callbacks.py +140 -0
- code_puppy_core_plugins/herdr/reporter.py +212 -0
- code_puppy_core_plugins/herdr/smoke.py +143 -0
- code_puppy_core_plugins/herdr/sources.py +133 -0
- code_puppy_core_plugins/hook_creator/__init__.py +1 -0
- code_puppy_core_plugins/hook_creator/register_callbacks.py +33 -0
- code_puppy_core_plugins/hook_manager/__init__.py +1 -0
- code_puppy_core_plugins/hook_manager/config.py +290 -0
- code_puppy_core_plugins/hook_manager/hooks_menu.py +571 -0
- code_puppy_core_plugins/hook_manager/register_callbacks.py +227 -0
- code_puppy_core_plugins/meta_oauth/__init__.py +1 -0
- code_puppy_core_plugins/meta_oauth/config.py +55 -0
- code_puppy_core_plugins/meta_oauth/oauth_flow.py +109 -0
- code_puppy_core_plugins/meta_oauth/register_callbacks.py +154 -0
- code_puppy_core_plugins/meta_oauth/utils.py +252 -0
- code_puppy_core_plugins/namespace_skill_search/README.md +118 -0
- code_puppy_core_plugins/namespace_skill_search/__init__.py +15 -0
- code_puppy_core_plugins/namespace_skill_search/namespaces.py +125 -0
- code_puppy_core_plugins/namespace_skill_search/register_callbacks.py +99 -0
- code_puppy_core_plugins/namespace_skill_search/search_tool.py +158 -0
- code_puppy_core_plugins/no_tools/__init__.py +0 -0
- code_puppy_core_plugins/no_tools/register_callbacks.py +42 -0
- code_puppy_core_plugins/oauth_pasteback.py +110 -0
- code_puppy_core_plugins/oauth_puppy_html.py +194 -0
- code_puppy_core_plugins/obsidian_agent/README.md +52 -0
- code_puppy_core_plugins/obsidian_agent/__init__.py +8 -0
- code_puppy_core_plugins/obsidian_agent/agent_obsidian.py +147 -0
- code_puppy_core_plugins/obsidian_agent/register_callbacks.py +13 -0
- code_puppy_core_plugins/ollama/__init__.py +1 -0
- code_puppy_core_plugins/ollama/register_callbacks.py +127 -0
- code_puppy_core_plugins/ollama_setup/__init__.py +5 -0
- code_puppy_core_plugins/ollama_setup/completer.py +38 -0
- code_puppy_core_plugins/ollama_setup/register_callbacks.py +419 -0
- code_puppy_core_plugins/plugin_list/__init__.py +0 -0
- code_puppy_core_plugins/plugin_list/plugin_contributions.py +348 -0
- code_puppy_core_plugins/plugin_list/plugin_meta.py +67 -0
- code_puppy_core_plugins/plugin_list/plugin_text_utils.py +173 -0
- code_puppy_core_plugins/plugin_list/plugins_menu.py +455 -0
- code_puppy_core_plugins/plugin_list/plugins_menu_layout.py +194 -0
- code_puppy_core_plugins/plugin_list/plugins_menu_render.py +431 -0
- code_puppy_core_plugins/plugin_list/project_trust_flow.py +162 -0
- code_puppy_core_plugins/plugin_list/register_callbacks.py +281 -0
- code_puppy_core_plugins/pop_command/__init__.py +1 -0
- code_puppy_core_plugins/pop_command/register_callbacks.py +191 -0
- code_puppy_core_plugins/prompt_newline/__init__.py +13 -0
- code_puppy_core_plugins/prompt_newline/config.py +21 -0
- code_puppy_core_plugins/prompt_newline/register_callbacks.py +163 -0
- code_puppy_core_plugins/prune/__init__.py +1 -0
- code_puppy_core_plugins/prune/prune_menu.py +308 -0
- code_puppy_core_plugins/prune/prune_model.py +517 -0
- code_puppy_core_plugins/prune/prune_render.py +354 -0
- code_puppy_core_plugins/prune/register_callbacks.py +388 -0
- code_puppy_core_plugins/puppy_kennel/README.md +203 -0
- code_puppy_core_plugins/puppy_kennel/__init__.py +6 -0
- code_puppy_core_plugins/puppy_kennel/commands.py +206 -0
- code_puppy_core_plugins/puppy_kennel/config.py +36 -0
- code_puppy_core_plugins/puppy_kennel/kennel.py +368 -0
- code_puppy_core_plugins/puppy_kennel/packer.py +152 -0
- code_puppy_core_plugins/puppy_kennel/recorder.py +83 -0
- code_puppy_core_plugins/puppy_kennel/register_callbacks.py +109 -0
- code_puppy_core_plugins/puppy_kennel/retriever.py +28 -0
- code_puppy_core_plugins/puppy_kennel/schema.py +78 -0
- code_puppy_core_plugins/puppy_kennel/state.py +68 -0
- code_puppy_core_plugins/puppy_kennel/tools.py +449 -0
- code_puppy_core_plugins/puppy_kennel/wings.py +110 -0
- code_puppy_core_plugins/puppy_spinner/README.md +93 -0
- code_puppy_core_plugins/puppy_spinner/__init__.py +11 -0
- code_puppy_core_plugins/puppy_spinner/builtin_frames.py +172 -0
- code_puppy_core_plugins/puppy_spinner/commands.py +116 -0
- code_puppy_core_plugins/puppy_spinner/picker.py +379 -0
- code_puppy_core_plugins/puppy_spinner/register_callbacks.py +193 -0
- code_puppy_core_plugins/puppy_spinner/spinners.py +444 -0
- code_puppy_core_plugins/quick_resume/__init__.py +0 -0
- code_puppy_core_plugins/quick_resume/register_callbacks.py +77 -0
- code_puppy_core_plugins/review_pr/__init__.py +1 -0
- code_puppy_core_plugins/review_pr/register_callbacks.py +162 -0
- code_puppy_core_plugins/shell_safety/__init__.py +6 -0
- code_puppy_core_plugins/shell_safety/agent_shell_safety.py +69 -0
- code_puppy_core_plugins/shell_safety/command_cache.py +156 -0
- code_puppy_core_plugins/shell_safety/register_callbacks.py +203 -0
- code_puppy_core_plugins/stack_dump/__init__.py +1 -0
- code_puppy_core_plugins/stack_dump/register_callbacks.py +79 -0
- code_puppy_core_plugins/statusline/__init__.py +14 -0
- code_puppy_core_plugins/statusline/config.py +68 -0
- code_puppy_core_plugins/statusline/payload.py +138 -0
- code_puppy_core_plugins/statusline/prompt_patch.py +76 -0
- code_puppy_core_plugins/statusline/register_callbacks.py +45 -0
- code_puppy_core_plugins/statusline/runner.py +122 -0
- code_puppy_core_plugins/statusline/statusline_command.py +197 -0
- code_puppy_core_plugins/steer_queue/__init__.py +10 -0
- code_puppy_core_plugins/steer_queue/queue_menu.py +444 -0
- code_puppy_core_plugins/steer_queue/register_callbacks.py +138 -0
- code_puppy_core_plugins/subagent_panel/README.md +102 -0
- code_puppy_core_plugins/subagent_panel/__init__.py +24 -0
- code_puppy_core_plugins/subagent_panel/coalesce_patch.py +242 -0
- code_puppy_core_plugins/subagent_panel/panel_render.py +145 -0
- code_puppy_core_plugins/subagent_panel/register_callbacks.py +535 -0
- code_puppy_core_plugins/subagent_panel/resume_repaint.py +112 -0
- code_puppy_core_plugins/subagent_panel/state.py +231 -0
- code_puppy_core_plugins/switch_agent_resume/__init__.py +5 -0
- code_puppy_core_plugins/switch_agent_resume/register_callbacks.py +314 -0
- code_puppy_core_plugins/theme/README.md +86 -0
- code_puppy_core_plugins/theme/__init__.py +14 -0
- code_puppy_core_plugins/theme/bundled_palettes.py +346 -0
- code_puppy_core_plugins/theme/content_styles.py +146 -0
- code_puppy_core_plugins/theme/osc_palette.py +178 -0
- code_puppy_core_plugins/theme/picker.py +358 -0
- code_puppy_core_plugins/theme/prompt_toolkit_theme.py +113 -0
- code_puppy_core_plugins/theme/register_callbacks.py +348 -0
- code_puppy_core_plugins/theme/rich_themes.py +202 -0
- code_puppy_core_plugins/theme/themes.py +720 -0
- code_puppy_core_plugins/timestamp_heartbeat/__init__.py +1 -0
- code_puppy_core_plugins/timestamp_heartbeat/register_callbacks.py +114 -0
- code_puppy_core_plugins/token_ratio_learner/__init__.py +5 -0
- code_puppy_core_plugins/token_ratio_learner/ratios.py +208 -0
- code_puppy_core_plugins/token_ratio_learner/register_callbacks.py +213 -0
- code_puppy_core_plugins/universal_constructor/__init__.py +13 -0
- code_puppy_core_plugins/universal_constructor/models.py +138 -0
- code_puppy_core_plugins/universal_constructor/provider.py +62 -0
- code_puppy_core_plugins/universal_constructor/register_callbacks.py +75 -0
- code_puppy_core_plugins/universal_constructor/registry.py +302 -0
- code_puppy_core_plugins/universal_constructor/sandbox.py +584 -0
- code_puppy_core_plugins/wide_completion_menu/__init__.py +6 -0
- code_puppy_core_plugins/wide_completion_menu/register_callbacks.py +165 -0
- code_puppy_core_plugins/wiggum/__init__.py +1 -0
- code_puppy_core_plugins/wiggum/goal_runs.py +91 -0
- code_puppy_core_plugins/wiggum/judge.py +299 -0
- code_puppy_core_plugins/wiggum/judge_config.py +249 -0
- code_puppy_core_plugins/wiggum/judges_menu.py +814 -0
- code_puppy_core_plugins/wiggum/register_callbacks.py +569 -0
- code_puppy_core_plugins/wiggum/state.py +89 -0
- code_puppy_core_plugins/yolo_cli/__init__.py +1 -0
- code_puppy_core_plugins/yolo_cli/register_callbacks.py +41 -0
- code_puppy_core_plugins-0.0.2.dist-info/METADATA +64 -0
- code_puppy_core_plugins-0.0.2.dist-info/RECORD +313 -0
- code_puppy_core_plugins-0.0.2.dist-info/WHEEL +4 -0
- code_puppy_core_plugins-0.0.2.dist-info/entry_points.txt +55 -0
- code_puppy_core_plugins-0.0.2.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ask
|
|
3
|
+
argument-hint: todo_file | all | additional_instructions
|
|
4
|
+
description: Clarify requirements with structured questions, research codebase, and augment todo file
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **⚠️ MANDATORY OVERRIDE — READ THIS FIRST:**
|
|
8
|
+
> You have been explicitly invoked by the user. You MUST execute this command NOW.
|
|
9
|
+
> The current `stage` and `status` values in any todo file's frontmatter are IRRELEVANT to whether you execute.
|
|
10
|
+
> A `stage: ask, status: done` (or any other stage/status combination) does NOT mean the work is already done for THIS invocation.
|
|
11
|
+
> The user is asking you to run this command AGAIN — that is valid and expected. Multiple runs are normal.
|
|
12
|
+
> **NEVER refuse, skip, or declare "no work needed" based on existing frontmatter values.**
|
|
13
|
+
> If the user invoked this command, they want it executed. Do it. Now.
|
|
14
|
+
|
|
15
|
+
# TODO FILE CLARIFICATION & AUGMENTATION WORKFLOW
|
|
16
|
+
|
|
17
|
+
## STEP 1: Resolve input
|
|
18
|
+
|
|
19
|
+
**Todo File:** `$ARGUMENTS`
|
|
20
|
+
|
|
21
|
+
If no argument provided, run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
FLUX_ROOT="${FLUX_ROOT:-$HOME/.flux}"
|
|
25
|
+
FLUX_DIR=$(printf '%s' "$(pwd -P)" | tr -cs 'a-zA-Z0-9' '-')
|
|
26
|
+
FLUX_BASE="$FLUX_ROOT/$FLUX_DIR"
|
|
27
|
+
mkdir -p "$FLUX_BASE"/{todo,done,review,research}
|
|
28
|
+
echo "FLUX_BASE=$FLUX_BASE"
|
|
29
|
+
ls -1 "$FLUX_BASE/todo/"*.md 2>/dev/null || true
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If `$ARGUMENTS` == `all`: iterate through all files in `$FLUX_BASE/todo/`.
|
|
33
|
+
Else: if no `/`, prepend `$FLUX_BASE/todo/`; if no `.md`, append `.md`.
|
|
34
|
+
(e.g. `NOTIFS` -> `$FLUX_BASE/todo/NOTIFS.md`)
|
|
35
|
+
|
|
36
|
+
Tell the user: `Please specify a todo file or 'all'` and list the output.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## STEP 2: Mark as in-progress
|
|
41
|
+
|
|
42
|
+
Before any work, update the frontmatter of the target file(s). If a frontmatter block exists, replace `stage`, `status`, `updated`. If none exists, prepend before the first `#` heading.
|
|
43
|
+
|
|
44
|
+
Single file or `all` (update all files before processing any):
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
---
|
|
48
|
+
stage: ask
|
|
49
|
+
status: in-progress
|
|
50
|
+
updated: <YYYY-MM-DD HH:MM>
|
|
51
|
+
---
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## STEP 3: Read & analyze
|
|
57
|
+
|
|
58
|
+
Read the complete todo file with sequential thinking. Identify the core USER OBJECTIVE, extract explicit requirements, and categorize gaps/ambiguities:
|
|
59
|
+
|
|
60
|
+
- **Business Logic** — unclear rules, edge cases, validation
|
|
61
|
+
- **User Experience** — interactions, feedback, error handling
|
|
62
|
+
- **Data & State** — data needed, flow, persistence
|
|
63
|
+
- **Integration Points** — external dependencies, APIs, services
|
|
64
|
+
- **Constraints** — performance, security, compatibility
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## STEP 4: Ask clarifying questions (one at a time)
|
|
69
|
+
|
|
70
|
+
Use `ask_user_question` to ask clarifying questions **one at a time**.
|
|
71
|
+
|
|
72
|
+
- Start with the MOST CRITICAL ambiguity
|
|
73
|
+
- Each question: 2–4 concrete options with brief implication descriptions
|
|
74
|
+
- Wait for answer before asking the next
|
|
75
|
+
- Continue until all critical ambiguities are resolved (typically 3–8 questions)
|
|
76
|
+
- Priority order: Core Behavior → Edge Cases → User Expectations → Scope Boundaries → Success Criteria
|
|
77
|
+
- If user selects "Other", record their response verbatim
|
|
78
|
+
|
|
79
|
+
Example format:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Question: "How should the system handle invalid input?"
|
|
83
|
+
Header: "Error handling"
|
|
84
|
+
Options:
|
|
85
|
+
- Label: "Silent rejection"
|
|
86
|
+
Description: "Quietly ignore invalid input, no user feedback"
|
|
87
|
+
- Label: "Inline validation"
|
|
88
|
+
Description: "Show error message next to the field immediately"
|
|
89
|
+
- Label: "Toast notification"
|
|
90
|
+
Description: "Display temporary notification with error details"
|
|
91
|
+
- Label: "Modal dialog"
|
|
92
|
+
Description: "Block user with detailed error explanation and retry option"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## STEP 5: Codebase research
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
lsd --tree ./src/ 2>/dev/null || find ./src -type f | sort
|
|
101
|
+
lsd --tree ./packages/ 2>/dev/null || find ./packages -type f | sort
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
- Search for files related to the feature
|
|
105
|
+
- Find EXISTING implementations to reuse or adapt
|
|
106
|
+
- Identify established patterns and integration points
|
|
107
|
+
- **CRITICAL:** Much of the code is often ALREADY WRITTEN — USE IT. DO NOT call for duplication.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## STEP 6: Augment the todo file
|
|
112
|
+
|
|
113
|
+
Replace the original todo file with the augmented version containing all gathered information.
|
|
114
|
+
|
|
115
|
+
**Add these sections:**
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
## Business Requirements (Clarified)
|
|
119
|
+
|
|
120
|
+
### Core Behavior
|
|
121
|
+
|
|
122
|
+
- [Requirement from Q1 answer]
|
|
123
|
+
|
|
124
|
+
### Edge Cases & Error Handling
|
|
125
|
+
|
|
126
|
+
- [Requirement from relevant answers]
|
|
127
|
+
|
|
128
|
+
### User Experience
|
|
129
|
+
|
|
130
|
+
- [Requirement from relevant answers]
|
|
131
|
+
|
|
132
|
+
### Constraints & Boundaries
|
|
133
|
+
|
|
134
|
+
- [What is OUT of scope]
|
|
135
|
+
- [Performance/security requirements]
|
|
136
|
+
|
|
137
|
+
## Implementation Research
|
|
138
|
+
|
|
139
|
+
### Existing Code to Leverage
|
|
140
|
+
|
|
141
|
+
- `./src/path/to/file.ts` - [what can be reused]
|
|
142
|
+
- `./src/other/module.ts` - [pattern to follow]
|
|
143
|
+
|
|
144
|
+
### Files That Need Changes
|
|
145
|
+
|
|
146
|
+
| File | Change Required |
|
|
147
|
+
| ----------- | ---------------- |
|
|
148
|
+
| `./src/...` | Add/modify X |
|
|
149
|
+
| `./src/...` | Integrate with Y |
|
|
150
|
+
|
|
151
|
+
### Code Patterns to Follow
|
|
152
|
+
|
|
153
|
+
[Links to existing patterns with relative paths]
|
|
154
|
+
|
|
155
|
+
## Implementation Plan
|
|
156
|
+
|
|
157
|
+
### Step 1: [Action]
|
|
158
|
+
|
|
159
|
+
- Specific file: `./src/...`
|
|
160
|
+
- Exact change: [describe precisely]
|
|
161
|
+
|
|
162
|
+
### Step 2: [Action]
|
|
163
|
+
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
### Definition of Done
|
|
167
|
+
|
|
168
|
+
- [ ] [Concrete, verifiable criterion]
|
|
169
|
+
- [ ] [Concrete, verifiable criterion]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Exclude:** unit/functional/integration tests, benchmarks, extensive documentation, multiple options.
|
|
173
|
+
**Include:** precise `./src` change instructions, citation links, inline code patterns, single prescriptive implementation path, definition of done.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## STEP 7: Mark as done
|
|
178
|
+
|
|
179
|
+
After finishing each todo file, update its frontmatter:
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
---
|
|
183
|
+
stage: ask
|
|
184
|
+
status: done
|
|
185
|
+
updated: <YYYY-MM-DD HH:MM>
|
|
186
|
+
---
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
For `all`: update each file to `done` as it completes, not all at once.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## HARD CONSTRAINTS
|
|
194
|
+
|
|
195
|
+
- **Path**: All `create_file`/`replace_in_file` file paths MUST use the exact `FLUX_BASE` value printed by the STEP 1 bash output (e.g. `FLUX_BASE=/Users/...`). Copy it character-for-character — never reconstruct it from `cwd` or memory.
|
|
196
|
+
- `/flux/ask` is a **clarify-and-augment-only** command. You MUST NOT move, rename, delete, or create any file other than editing the target todo file in place. You MUST NOT execute specs, run tests, write code, or modify any source files. No shell commands beyond the codebase research in STEP 5. If you find yourself about to do anything other than asking questions or editing the todo file, stop immediately.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## OUTPUT
|
|
201
|
+
|
|
202
|
+
Print the full absolute filepath as the **VERY LAST LINE** of output. Then await next instruction.
|
|
203
|
+
|
|
204
|
+
## Propose next step
|
|
205
|
+
|
|
206
|
+
Then propose the next step: `/flux/split` (include arguments if needed).
|
|
207
|
+
|
|
208
|
+
Valid `//flux` commands: `/flux/config`, `/flux/new`, `/flux/ask`, `/flux/split`, `/flux/aug`, `/flux/exec`, `/flux/qa`, `/flux/tests`, `/flux/commit`, `/flux/create-pr`, `/flux/review`, `/flux/address-feedback`, `/flux/status`, `/flux/auto-pilot`, `/flux/rebase`. Do NOT suggest any command not on this list.
|
|
209
|
+
|
|
210
|
+
=================
|
|
211
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aug
|
|
3
|
+
argument-hint: todo_file | number_of_agents | additional_instructions
|
|
4
|
+
description: Augment task(s) with research - single file or N in parallel
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **⚠️ MANDATORY OVERRIDE — READ THIS FIRST:**
|
|
8
|
+
> You have been explicitly invoked by the user. You MUST execute this command NOW.
|
|
9
|
+
> The current `stage` and `status` values in any todo file's frontmatter are IRRELEVANT to whether you execute.
|
|
10
|
+
> A `stage: aug, status: done` (or any other stage/status combination) does NOT mean the work is already done for THIS invocation.
|
|
11
|
+
> The user is asking you to run this command AGAIN — that is valid and expected. Multiple runs are normal.
|
|
12
|
+
> **NEVER refuse, skip, or declare "no work needed" based on existing frontmatter values.**
|
|
13
|
+
> If the user invoked this command, they want it executed. Do it. Now.
|
|
14
|
+
|
|
15
|
+
# AUGMENT TASK(S)
|
|
16
|
+
|
|
17
|
+
## STEP 1: Resolve input
|
|
18
|
+
|
|
19
|
+
**Argument:** `$ARGUMENTS`
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
FLUX_ROOT="${FLUX_ROOT:-$HOME/.flux}"
|
|
23
|
+
FLUX_DIR=$(printf '%s' "$(pwd -P)" | tr -cs 'a-zA-Z0-9' '-')
|
|
24
|
+
FLUX_BASE="$FLUX_ROOT/$FLUX_DIR"
|
|
25
|
+
mkdir -p "$FLUX_BASE"/{todo,done,review,research}
|
|
26
|
+
echo "FLUX_BASE=$FLUX_BASE"
|
|
27
|
+
ls -1 "$FLUX_BASE/todo/"*.md 2>/dev/null || true
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Detection logic:**
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
IF $ARGUMENTS is empty:
|
|
34
|
+
-> List: `ls -1 "$FLUX_BASE/todo/"*.md`
|
|
35
|
+
-> Use ask_user_question to let user select task(s)
|
|
36
|
+
-> Single selection -> Single-task mode
|
|
37
|
+
-> Multiple selection -> Process selected tasks sequentially
|
|
38
|
+
|
|
39
|
+
IF $ARGUMENTS (case-insensitive) == 'all':
|
|
40
|
+
-> Sequential mode: process ALL tasks in $FLUX_BASE/todo/*.md one at a time
|
|
41
|
+
-> Run each in single-task mode yourself (no subagents), one after another
|
|
42
|
+
-> Do not proceed to next task until current one is complete
|
|
43
|
+
|
|
44
|
+
IF $ARGUMENTS is a pure integer (ONLY digits, nothing else — no letters, underscores, hyphens, dots):
|
|
45
|
+
Verify: `echo "$ARGUMENTS" | grep -qE '^[0-9]+$'` must be true. If the argument contains ANY non-digit character (e.g. "CMPAN_5", "task-3", "3files") it is NOT a number — treat it as a filename instead.
|
|
46
|
+
IF $ARGUMENTS == 1:
|
|
47
|
+
-> Sequential mode: process ALL tasks in $FLUX_BASE/todo/*.md one at a time
|
|
48
|
+
-> Run each in single-task mode yourself (no subagents), one after another
|
|
49
|
+
-> Do not proceed to next task until current one is complete
|
|
50
|
+
ELSE:
|
|
51
|
+
-> Multi-task mode with $ARGUMENTS parallel sub-agents
|
|
52
|
+
|
|
53
|
+
OTHERWISE (argument is a filename — including any argument that contains letters, underscores, hyphens, or dots):
|
|
54
|
+
-> Single-task mode for that file
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Path and suffix inference:** if no `/`, prepend `$FLUX_BASE/todo/`; if no `.md`, append `.md`.
|
|
58
|
+
(e.g. `NOTIFS` -> `$FLUX_BASE/todo/NOTIFS.md`)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## SINGLE-TASK MODE
|
|
63
|
+
|
|
64
|
+
## STEP 2: Mark as in-progress
|
|
65
|
+
|
|
66
|
+
Update the task file's frontmatter before starting. If frontmatter exists, replace `stage`, `status`, `updated`. If none, prepend before the first `#` heading.
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
---
|
|
70
|
+
stage: aug
|
|
71
|
+
status: in-progress
|
|
72
|
+
updated: <YYYY-MM-DD HH:MM>
|
|
73
|
+
---
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## STEP 3: Research & augment
|
|
77
|
+
|
|
78
|
+
### 3.1 Determine stack
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
FLUX_ROOT="${FLUX_ROOT:-$HOME/.flux}"
|
|
82
|
+
FLUX_DIR=$(printf '%s' "$(pwd -P)" | tr -cs 'a-zA-Z0-9' '-')
|
|
83
|
+
FLUX_BASE="$FLUX_ROOT/$FLUX_DIR"
|
|
84
|
+
echo "FLUX_BASE=$FLUX_BASE"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Act as a `$STACK` expert SOFTWARE ARTISAN. If a file called `stack.env` exists at `$FLUX_BASE/stack.env`, read it and set `$STACK` from its contents. Otherwise, run the following detection script to determine `$STACK` and save it (this only ever runs the first time for this directory):
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
STACK="software"
|
|
91
|
+
if [ -f "package.json" ]; then
|
|
92
|
+
STACK=$(bun -e "
|
|
93
|
+
const d=JSON.parse(require('fs').readFileSync('./package.json','utf8'));
|
|
94
|
+
const deps=Object.assign({}, d.dependencies, d.devDependencies, d.peerDependencies);
|
|
95
|
+
const frameworks=['ink','react','vue','angular','next','express'];
|
|
96
|
+
const fw=frameworks.find(f=>deps[f]);
|
|
97
|
+
const ts=deps['typescript']?'TypeScript':'JavaScript';
|
|
98
|
+
console.log(fw?fw+' + '+ts:ts);
|
|
99
|
+
" 2>/dev/null || echo "JavaScript/TypeScript")
|
|
100
|
+
elif [ -f "Cargo.toml" ]; then STACK="Rust"
|
|
101
|
+
elif [ -f "go.mod" ]; then STACK="Go"
|
|
102
|
+
elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then STACK="Python"
|
|
103
|
+
elif [ -f "pom.xml" ] || [ -f "build.gradle" ]; then STACK="Java/Kotlin"
|
|
104
|
+
fi
|
|
105
|
+
mkdir -p "$FLUX_BASE"
|
|
106
|
+
echo "$STACK" > "$FLUX_BASE/stack.env"
|
|
107
|
+
echo "Detected stack: $STACK (saved)"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 3.2 Read the task file
|
|
111
|
+
|
|
112
|
+
Read the full task file with sequential thinking. Think "out loud" about the core user OBJECTIVE.
|
|
113
|
+
|
|
114
|
+
### 3.3 Explore the codebase
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
lsd --tree ./src 2>/dev/null || find ./src -type f | sort
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
- Examine module hierarchy; search for files related to the feature
|
|
121
|
+
- Much of the code needed is ALREADY WRITTEN — USE IT. DO NOT call for duplication.
|
|
122
|
+
|
|
123
|
+
Think deeply with step-by-step reasoning:
|
|
124
|
+
|
|
125
|
+
- What is the core objective?
|
|
126
|
+
- What needs to change in `./src` to accomplish this task?
|
|
127
|
+
- What questions remain? What needs research?
|
|
128
|
+
|
|
129
|
+
### 3.4 Augment the task file in place
|
|
130
|
+
|
|
131
|
+
- Clone any needed third-party libraries into `./tmp`
|
|
132
|
+
- Augment the task file with rich research detail
|
|
133
|
+
- Link to citation sources in `./tmp` and `./src` with relative markdown hyperlinks
|
|
134
|
+
- Plan required source code with ULTRATHINK; demonstrate core patterns inline in the task file
|
|
135
|
+
- Remove any language calling for tests, benchmarks, or documentation
|
|
136
|
+
- Provide precise instructions on what to change in `./src` and how
|
|
137
|
+
- Provide a clear definition of done (not requiring extensive testing)
|
|
138
|
+
- Be prescriptive — always select the most feature-rich, code-correct option as the single required implementation path. Do not take the path of least resistance.
|
|
139
|
+
|
|
140
|
+
REPLACE THE ORIGINAL FILE in place. Do not write augmentations to a new file.
|
|
141
|
+
|
|
142
|
+
Print the full absolute filepath as the **VERY LAST LINE** of output. Then return to planning.
|
|
143
|
+
|
|
144
|
+
## STEP 4: Mark as done
|
|
145
|
+
|
|
146
|
+
```yaml
|
|
147
|
+
---
|
|
148
|
+
stage: aug
|
|
149
|
+
status: done
|
|
150
|
+
updated: <YYYY-MM-DD HH:MM>
|
|
151
|
+
---
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## MULTI-TASK MODE
|
|
157
|
+
|
|
158
|
+
Use the `invoke_agent` tool to execute tasks IN PARALLEL. _NEVER_ run agents in the background — always foreground.
|
|
159
|
+
|
|
160
|
+
- Spawn `$ARGUMENTS` subagents at a time (or fewer if fewer tasks exist)
|
|
161
|
+
- As each completes, spawn a new one until all `$FLUX_BASE/todo/*.md` tasks are done
|
|
162
|
+
|
|
163
|
+
### Subagent prompt template
|
|
164
|
+
|
|
165
|
+
Use the single-task mode steps above as the subagent prompt, substituting `{{absolute_file_path}}` for `$ARGUMENTS`.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## HARD CONSTRAINTS
|
|
170
|
+
|
|
171
|
+
- **Path**: All `create_file`/`replace_in_file` file paths MUST use the exact `FLUX_BASE` value printed by the STEP 1 bash output (e.g. `FLUX_BASE=/Users/...`). Copy it character-for-character — never reconstruct it from `cwd` or memory.
|
|
172
|
+
- `/flux/aug` is a **research-and-augment-only** command. You MUST NOT modify any source files, run any tests, or create new files outside of `./tmp`. The only file operation allowed on the project is editing the target task file in place. If you find yourself about to touch any source file, stop immediately.
|
|
173
|
+
|
|
174
|
+
## Propose next step
|
|
175
|
+
|
|
176
|
+
Then propose the next step: `/flux/exec` (include arguments if needed).
|
|
177
|
+
|
|
178
|
+
Valid `//flux` commands: `/flux/config`, `/flux/new`, `/flux/ask`, `/flux/split`, `/flux/aug`, `/flux/exec`, `/flux/qa`, `/flux/tests`, `/flux/commit`, `/flux/create-pr`, `/flux/review`, `/flux/address-feedback`, `/flux/status`, `/flux/auto-pilot`, `/flux/rebase`. Do NOT suggest any command not on this list.
|
|
179
|
+
|
|
180
|
+
=================
|
|
181
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: auto-pilot
|
|
3
|
+
argument-hint: task_description | spec.md | spec.txt | TICKET-123 | additional_instructions
|
|
4
|
+
description: 'Orchestrates the complete //flux pipeline end-to-end. Accepts: a prompt, a .md/.txt spec file, or a Jira ticket (e.g. PROJ-123).'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# auto-pilot
|
|
8
|
+
|
|
9
|
+
Fully autonomous development pipeline orchestrator. Executes the full **//flux pipeline** start to finish — pausing only during `/flux/ask` for clarifying questions.
|
|
10
|
+
|
|
11
|
+
## STEP 1: Resolve input
|
|
12
|
+
|
|
13
|
+
Resolve `$ARGUMENTS` before starting:
|
|
14
|
+
|
|
15
|
+
- **Jira key** (`PROJ-123` pattern): fetch via `get_issue_by_key_or_link`, extract summary/description/acceptance criteria. Display: `📋 Loaded task from Jira: <KEY> — <summary>`
|
|
16
|
+
- **File path** (`.md`/`.txt`): read with `read_file` tool, use full content. Display: `📄 Loaded task from file: <path>`
|
|
17
|
+
- **Natural language**: use directly. Display: `💬 Task: <description>`
|
|
18
|
+
|
|
19
|
+
## STEP 2: Execute pipeline
|
|
20
|
+
|
|
21
|
+
Execute each step in sequence. For each step: announce `▶ Step: /flux/<command>`, execute all its instructions with correct arguments, announce `✓ Step: /flux/<command> complete`, carry output artifacts forward.
|
|
22
|
+
|
|
23
|
+
### 2.1 — `/flux/new`
|
|
24
|
+
|
|
25
|
+
Pass resolved task description. Output: task file name (e.g. `NOTIFS`) — carry forward.
|
|
26
|
+
|
|
27
|
+
### 2.2 — `/flux/ask`
|
|
28
|
+
|
|
29
|
+
Pass task file name from 2.1. **Only step where you pause** — ask all clarifying questions, wait for user responses, then continue automatically.
|
|
30
|
+
|
|
31
|
+
### 2.3 — `/flux/split`
|
|
32
|
+
|
|
33
|
+
Pass task file name from 2.1. Output: subtask count — carry forward.
|
|
34
|
+
|
|
35
|
+
### 2.4 — `/flux/aug`
|
|
36
|
+
|
|
37
|
+
Pass `2` (augment all subtasks with 2 parallel agents). Wait for completion.
|
|
38
|
+
|
|
39
|
+
### 2.5 — `/flux/exec`
|
|
40
|
+
|
|
41
|
+
Pass `2` (execute all subtasks with 2 parallel agents). Wait for completion.
|
|
42
|
+
|
|
43
|
+
### 2.6 — `/flux/qa`
|
|
44
|
+
|
|
45
|
+
Pass `2`. If QA produces refined tasks, re-run `/flux/exec 2` and `/flux/qa 2` until all tasks clear (max 3 cycles).
|
|
46
|
+
|
|
47
|
+
### 2.7 — `/flux/tests`
|
|
48
|
+
|
|
49
|
+
No arguments. Run the test suite, fix regressions introduced by this branch. If unresolved failures remain after 3 fix cycles, report and continue to commit (do not block the pipeline).
|
|
50
|
+
|
|
51
|
+
### 2.8 — `/flux/commit`
|
|
52
|
+
|
|
53
|
+
No additional arguments. User will be asked for commit confirmation — expected and allowed.
|
|
54
|
+
|
|
55
|
+
## STEP 3: Error recovery
|
|
56
|
+
|
|
57
|
+
On step failure: identify root cause, apply fix, re-run the failed step. After 3 failed attempts on the same step, stop and report: which step failed, what was attempted, what the user should do next.
|
|
58
|
+
|
|
59
|
+
## HARD CONSTRAINT
|
|
60
|
+
|
|
61
|
+
`/flux/auto-pilot` orchestrates other `//flux` commands — it does not implement logic of its own beyond sequencing. Each step's own HARD CONSTRAINTs apply in full. Do not skip steps, do not merge steps, do not take shortcuts.
|
|
62
|
+
|
|
63
|
+
## Output style
|
|
64
|
+
|
|
65
|
+
- Concise and scannable
|
|
66
|
+
- Use `▶`/`✓` step headers
|
|
67
|
+
- Actionable errors — no raw stack traces
|
|
68
|
+
- Do not produce summary files unless a step requires it
|
|
69
|
+
|
|
70
|
+
=================
|
|
71
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cheatsheet
|
|
3
|
+
description: Show the //flux pipeline cheatsheet (all stages, colorized)
|
|
4
|
+
exec: {python} {script:flux_cheatsheet.py} --docs {command:flux/_docs}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /flux/cheatsheet
|
|
8
|
+
|
|
9
|
+
Renders the //flux pipeline cheatsheet -- a colorized view of every pipeline
|
|
10
|
+
stage (A/B/C/D) sourced from the canonical `pipeline.md` doc.
|
|
11
|
+
|
|
12
|
+
> **Note:** code-puppy executes this command via the `exec:` frontmatter hook,
|
|
13
|
+
> which runs the bundled `flux_cheatsheet.py` (resolved under code-puppy's
|
|
14
|
+
> config dir) and streams its ANSI output back through the message bus. The
|
|
15
|
+
> body below is reference docs only -- it is not sent to the AI when the script
|
|
16
|
+
> is wired up.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: commit
|
|
3
|
+
description: Create a detailed commit message from branch changes
|
|
4
|
+
argument-hint: amend
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# CREATE A DETAILED COMMIT MESSAGE
|
|
8
|
+
|
|
9
|
+
## STEP 1: Detect mode
|
|
10
|
+
|
|
11
|
+
If argument (case-insensitive) equals `amend`, enter **amend mode**:
|
|
12
|
+
|
|
13
|
+
- Run `git log -1 --format=%B` and display: `"Previous commit message: <message>"`
|
|
14
|
+
- Use it as context in STEP 4; newly generated message is authoritative
|
|
15
|
+
- Use `git commit --amend -m "..."` in STEP 5 instead of `git commit -m "..."`
|
|
16
|
+
|
|
17
|
+
## STEP 2: Detect commit prefix
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
BRANCH=$(git branch --show-current)
|
|
21
|
+
TICKET=$(echo "$BRANCH" | grep -oE '[A-Z]+-[0-9]+' | head -1 || echo "")
|
|
22
|
+
echo "BRANCH: $BRANCH"
|
|
23
|
+
echo "TICKET: $TICKET"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- `$TICKET` non-empty → prefix: `$TICKET:` (e.g. `PROJ-123: description`)
|
|
27
|
+
- `$TICKET` empty → `ask_user_question`:
|
|
28
|
+
- Question: "No Jira ticket found in branch name. What type of commit is this?"
|
|
29
|
+
- Header: "Commit type"
|
|
30
|
+
- Options: `feat`, `fix`, `chore`, `refactor`, `docs`, `test`
|
|
31
|
+
- Prefix: `<type>: description`
|
|
32
|
+
|
|
33
|
+
## STEP 3: Identify changed files
|
|
34
|
+
|
|
35
|
+
List all files changed vs main branch (both modified and new).
|
|
36
|
+
|
|
37
|
+
## STEP 4: Generate commit message
|
|
38
|
+
|
|
39
|
+
Generate an informative commit message for the changes. In amend mode, use the previous message as context to incorporate any new staged changes.
|
|
40
|
+
|
|
41
|
+
## STEP 5: Confirm and apply
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
git status
|
|
45
|
+
git diff --stat HEAD
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If no changes, tell the user and stop.
|
|
49
|
+
|
|
50
|
+
**Amend mode:** if no staged changes, print `"Nothing is staged. Stage your changes with \`git add\` before amending."` and stop.
|
|
51
|
+
|
|
52
|
+
**Amend mode only** — show before confirmation:
|
|
53
|
+
|
|
54
|
+
> ⚠️ `--amend` rewrites history. If this branch has already been pushed, a force-push will be required.
|
|
55
|
+
|
|
56
|
+
Present the message from STEP 4, then `ask_user_question`:
|
|
57
|
+
|
|
58
|
+
- Normal: "Ready to commit with the message above?" → `["Yes, commit now", "No, let me review first"]`
|
|
59
|
+
- Amend: "Ready to amend the previous commit with the message above?" → `["Yes, amend now", "No, let me review first"]`
|
|
60
|
+
|
|
61
|
+
If "No, let me review first" → stop.
|
|
62
|
+
|
|
63
|
+
**Normal mode:**
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git add .
|
|
67
|
+
git commit -m "$(cat <<'EOF'
|
|
68
|
+
$COMMIT_PREFIX Your generated message here
|
|
69
|
+
EOF
|
|
70
|
+
)"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Amend mode:**
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
git add .
|
|
77
|
+
git commit --amend -m "$(cat <<'EOF'
|
|
78
|
+
$COMMIT_PREFIX Your refined message here
|
|
79
|
+
|
|
80
|
+
EOF
|
|
81
|
+
)"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
IMPORTANT: Never use `$DETAILED_MSG` or any shell variable for the commit message. Write the actual generated message inline in the heredoc.
|
|
85
|
+
|
|
86
|
+
IMPORTANT: DO NOT push unless the user specifically asks!
|
|
87
|
+
|
|
88
|
+
## STEP 6: Summarize
|
|
89
|
+
|
|
90
|
+
Summarize completion. In amend mode, note "Amended previous commit" instead of "Created new commit".
|
|
91
|
+
|
|
92
|
+
## HARD CONSTRAINT
|
|
93
|
+
|
|
94
|
+
`/flux/commit` MUST NOT push to any remote unless the user explicitly asks. MUST NOT modify any source files or task files. The only permitted operations are reading git history, staging files, and creating/amending a commit. Write the commit message inline — never via shell variables.
|
|
95
|
+
|
|
96
|
+
## Propose next step
|
|
97
|
+
|
|
98
|
+
Then propose the next step: `/flux/create-pr` (include arguments if needed).
|
|
99
|
+
|
|
100
|
+
Valid `//flux` commands: `/flux/config`, `/flux/new`, `/flux/ask`, `/flux/split`, `/flux/aug`, `/flux/exec`, `/flux/qa`, `/flux/tests`, `/flux/commit`, `/flux/create-pr`, `/flux/review`, `/flux/address-feedback`, `/flux/status`, `/flux/auto-pilot`, `/flux/rebase`. Do NOT suggest any command not on this list.
|
|
101
|
+
|
|
102
|
+
=================
|
|
103
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: config
|
|
3
|
+
description: Create or update the flux config.env with settings used by the flux command suite
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Configure Flux Settings
|
|
7
|
+
|
|
8
|
+
## STEP 1: Check for existing config
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
FLUX_ROOT="${FLUX_ROOT:-$HOME/.flux}"
|
|
12
|
+
FLUX_DIR=$(printf '%s' "$(pwd -P)" | tr -cs 'a-zA-Z0-9' '-')
|
|
13
|
+
FLUX_BASE="$FLUX_ROOT/$FLUX_DIR"
|
|
14
|
+
mkdir -p "$FLUX_BASE/todo" "$FLUX_BASE/done" "$FLUX_BASE/review" "$FLUX_BASE/research"
|
|
15
|
+
echo "FLUX_BASE=$FLUX_BASE"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cat "$FLUX_BASE/config.env" 2>/dev/null && echo "__EXISTS__" || echo "__MISSING__"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**File exists** — check the mandatory key (`TEST_CMD`):
|
|
23
|
+
|
|
24
|
+
- **Present** → display summary:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
TEST_CMD = <value>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`ask_user_question` — question: "Config looks good. Do you want to update any values?" / header: "Update config" / options: `Yes, update values` | `No, looks good`
|
|
31
|
+
|
|
32
|
+
- No → stop. Yes → STEP 2 (update flow).
|
|
33
|
+
|
|
34
|
+
- **Missing** → proceed to STEP 2 (update flow).
|
|
35
|
+
|
|
36
|
+
**File missing** → proceed to STEP 2 (new file flow).
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## STEP 2: Collect values
|
|
41
|
+
|
|
42
|
+
### 2a. New file flow
|
|
43
|
+
|
|
44
|
+
If the config file did not exist, do NOT ask questions. Write the file immediately with a blank value and an inline comment:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
cat > "$FLUX_BASE/config.env" << 'CONFIG_EOF'
|
|
48
|
+
# Command that runs your test suite (e.g. bun run test:quiet, npm test, pytest -q, cargo test -- --quiet)
|
|
49
|
+
# Tip: chain lint + tests together, e.g. bun run lint && bun run test:quiet
|
|
50
|
+
TEST_CMD=
|
|
51
|
+
CONFIG_EOF
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
echo "=== $FLUX_BASE/config.env ==="
|
|
56
|
+
cat "$FLUX_BASE/config.env"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`ask_user_question` — question: "Config file created at `$FLUX_BASE/config.env`. Please open it, fill in your value, then re-run `/flux/config` to verify. Ready to continue?" / header: "Edit config" / options:
|
|
60
|
+
|
|
61
|
+
- `Done, verify now` — re-read `$FLUX_BASE/config.env`, jump to STEP 4
|
|
62
|
+
- `Exit` — stop
|
|
63
|
+
|
|
64
|
+
### 2b. Update flow
|
|
65
|
+
|
|
66
|
+
Runs only when the user chose "Yes, update values" from STEP 1, or when the key is missing. Ask via `ask_user_question` with options `Keep current` (pre-filled) and `New value - use Other below` (free-text via Other input).
|
|
67
|
+
|
|
68
|
+
**TEST_CMD**: "What command runs your test suite?" / header: "TEST_CMD"
|
|
69
|
+
|
|
70
|
+
- `Keep current` → description: `Current value: <TEST_CMD>`
|
|
71
|
+
- `New value - use Other below` → description: `e.g. bun run test:quiet, npm test, pytest -q — or chain with lint: bun run lint && bun run test:quiet`
|
|
72
|
+
- Store result as `TEST_CMD_VALUE`.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## STEP 3: Write config (update flow only)
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
cat > "$FLUX_BASE/config.env" << 'CONFIG_EOF'
|
|
80
|
+
TEST_CMD=<TEST_CMD_VALUE>
|
|
81
|
+
CONFIG_EOF
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Rules: use the actual collected value (not the placeholder name), overwrite completely.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
echo "=== $FLUX_BASE/config.env ==="
|
|
88
|
+
cat "$FLUX_BASE/config.env"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## STEP 4: Confirm
|
|
94
|
+
|
|
95
|
+
Parse `$FLUX_BASE/config.env` (strip comments and blank lines) and print:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
$FLUX_BASE/config.env ready:
|
|
99
|
+
|
|
100
|
+
TEST_CMD = <value or "(not set)">
|
|
101
|
+
|
|
102
|
+
All //flux commands will read this file automatically via:
|
|
103
|
+
source "$FLUX_BASE/config.env" 2>/dev/null
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## HARD CONSTRAINT
|
|
107
|
+
|
|
108
|
+
`/flux/config` MUST NOT modify any source files, task files, or any file outside of `$FLUX_BASE/config.env`. The only permitted file operation is writing/overwriting `$FLUX_BASE/config.env`. No git commands. No task creation.
|