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,392 @@
|
|
|
1
|
+
# `//flux` Command Synopsis
|
|
2
|
+
|
|
3
|
+
Quick reference for arguments, options, and usage examples for every command in the `//flux` suite.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## `/flux/config` ⚙️ First-time setup
|
|
8
|
+
|
|
9
|
+
> **Run this once before using the `//flux` suite on a new project.** It creates the flux `config.env` file (`~/.flux/<flattened-dir>/config.env`) with your project-specific settings. All other `//flux` commands read from this file automatically.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/flux/config
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
| Argument | Required | Description |
|
|
16
|
+
| --------- | -------- | ------------------- |
|
|
17
|
+
| _(empty)_ | — | No arguments needed |
|
|
18
|
+
|
|
19
|
+
**What it configures:**
|
|
20
|
+
|
|
21
|
+
| Key | Required | Description |
|
|
22
|
+
| ---------------------- | --------- | -------------------------------------------------------------------- |
|
|
23
|
+
| `TEST_CMD` | mandatory | Command to run your test suite (e.g. `bun run test:quiet`) |
|
|
24
|
+
|
|
25
|
+
**Example:**
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/flux/config
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## `/flux/new`
|
|
34
|
+
|
|
35
|
+
Create a new task file from a description or Jira ticket.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/flux/new <description | TICKET-ID>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
| Argument | Required | Description |
|
|
42
|
+
| ------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
+
| `description` | mandatory | Natural language description of the task |
|
|
44
|
+
| `TICKET-ID` | mandatory (alt) | Jira ticket key (e.g. `MYPROJ-123`, `CLIAPP-456`) — fetches summary, description, and acceptance criteria automatically |
|
|
45
|
+
|
|
46
|
+
**Examples:**
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
/flux/new "Add real-time notifications to the sidebar"
|
|
50
|
+
/flux/new MYPROJ-123
|
|
51
|
+
/flux/new CLIAPP-456
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## `/flux/ask`
|
|
57
|
+
|
|
58
|
+
Clarify requirements via structured questions, then augment the task file with research and an implementation plan.
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
/flux/ask [todo-file | all]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
| Argument | Required | Description |
|
|
65
|
+
| ----------- | -------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `todo_file` | optional | Task file name (path and `.md` extension inferred). If omitted, prompts you to select from available tasks. |
|
|
67
|
+
| `all` | optional (alt) | Iterates through every file in the flux todo directory and asks clarifying questions |
|
|
68
|
+
|
|
69
|
+
**Examples:**
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
/flux/ask NOTIFS
|
|
73
|
+
/flux/ask MYPROJ-123
|
|
74
|
+
/flux/ask all
|
|
75
|
+
/flux/ask # interactive selection
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## `/flux/split`
|
|
81
|
+
|
|
82
|
+
Decompose a large task file into multiple focused, single-session subtask files. Deletes the original.
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
/flux/split <todo-file>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
| Argument | Required | Description |
|
|
89
|
+
| ----------- | --------- | ------------------------------------------------------ |
|
|
90
|
+
| `todo-file` | mandatory | Task file to split (path and `.md` extension inferred) |
|
|
91
|
+
|
|
92
|
+
**Examples:**
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
/flux/split NOTIFS
|
|
96
|
+
/flux/split MYPROJ-123
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## `/flux/aug`
|
|
102
|
+
|
|
103
|
+
Research the codebase and enrich task file(s) with implementation detail and citations.
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
/flux/aug [todo-file | N]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
| Argument | Required | Description |
|
|
110
|
+
| ----------- | -------------- | -------------------------------------------------------------- |
|
|
111
|
+
| `todo-file` | optional | Augment a single task file (path and `.md` extension inferred) |
|
|
112
|
+
| `N` | optional (alt) | Augment all tasks using N parallel sub-agents |
|
|
113
|
+
| _(empty)_ | — | Interactive selection prompt |
|
|
114
|
+
|
|
115
|
+
**Examples:**
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
/flux/aug NOTIFS # single task
|
|
119
|
+
/flux/aug 2 # all tasks, 2 agents in parallel
|
|
120
|
+
/flux/aug 3 # all tasks, 3 agents in parallel
|
|
121
|
+
/flux/aug # interactive selection
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## `/flux/exec`
|
|
127
|
+
|
|
128
|
+
Execute task(s) exactly as written — no scope creep.
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
/flux/exec [todo_file | N]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
| Argument | Required | Description |
|
|
135
|
+
| ----------- | -------------- | -------------------------------------------------------------- |
|
|
136
|
+
| `todo_file` | optional | Execute a single task file (path and `.md` extension inferred) |
|
|
137
|
+
| `N` | optional (alt) | Execute all tasks using N parallel sub-agents |
|
|
138
|
+
| _(empty)_ | — | Interactive selection prompt |
|
|
139
|
+
|
|
140
|
+
**Examples:**
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
/flux/exec NOTIFS_1 # single task
|
|
144
|
+
/flux/exec 2 # all tasks, 2 agents in parallel
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## `/flux/qa`
|
|
150
|
+
|
|
151
|
+
Code-review the implementation for a task. Rates 1–10. Moves to `done/` if perfect; refines the task file if not.
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
/flux/qa [todo_file | N]
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
| Argument | Required | Description |
|
|
158
|
+
| ----------- | -------------- | --------------------------------------------------------- |
|
|
159
|
+
| `todo_file` | optional | QA a single task file (path and `.md` extension inferred) |
|
|
160
|
+
| `N` | optional (alt) | QA all tasks using N parallel sub-agents |
|
|
161
|
+
| _(empty)_ | — | Interactive selection prompt |
|
|
162
|
+
|
|
163
|
+
**Examples:**
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
/flux/qa NOTIFS_1 # single task
|
|
167
|
+
/flux/qa 2 # all tasks, 2 agents in parallel
|
|
168
|
+
/flux/qa # interactive selection
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
> **QA loop:** If score < 10/10, re-run `/flux/exec` then `/flux/qa` until the task file is deleted.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## `/flux/tests`
|
|
176
|
+
|
|
177
|
+
Run the project's test suite, fix regressions introduced by this branch, and leave pre-existing failures untouched.
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
/flux/tests [additional_instructions]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
| Argument | Required | Description |
|
|
184
|
+
| ------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
185
|
+
| `additional_instructions` | optional | Override default behavior (e.g. "address all failing tests including pre-existing", "focus on auth/ tests only") |
|
|
186
|
+
| _(empty)_ | — | Runs with default behavior: fix regressions only, skip pre-existing |
|
|
187
|
+
|
|
188
|
+
**How it works:**
|
|
189
|
+
|
|
190
|
+
1. Reads `TEST_CMD` from the flux `config.env`
|
|
191
|
+
2. Establishes a baseline of pre-existing failures by running the test suite against the merge base
|
|
192
|
+
3. Runs tests on the current branch, classifies failures as regressions vs. pre-existing
|
|
193
|
+
4. Fixes regressions (up to 3 fix cycles), leaves pre-existing failures untouched
|
|
194
|
+
5. Prints a summary: regressions fixed, pre-existing skipped, unresolved
|
|
195
|
+
|
|
196
|
+
**Examples:**
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
/flux/tests
|
|
200
|
+
/flux/tests address all failing tests including pre-existing
|
|
201
|
+
/flux/tests focus only on src/auth/ test failures
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
> **Note:** Requires `TEST_CMD` to be configured via `/flux/config` first.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## `/flux/commit`
|
|
209
|
+
|
|
210
|
+
Stage all changes and create a detailed commit message derived from the diff vs. main. Asks for confirmation before committing.
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
/flux/commit
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
| Argument | Required | Description |
|
|
217
|
+
| --------- | -------- | ------------------- |
|
|
218
|
+
| _(empty)_ | — | No arguments needed |
|
|
219
|
+
|
|
220
|
+
**Example:**
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
/flux/commit
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## `/flux/create-pr`
|
|
229
|
+
|
|
230
|
+
Create a GitHub PR for the current branch, or display the existing PR URL and status if one already exists. Idempotent.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
/flux/create-pr
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
| Argument | Required | Description |
|
|
237
|
+
| --------- | -------- | ------------------- |
|
|
238
|
+
| _(empty)_ | — | No arguments needed |
|
|
239
|
+
|
|
240
|
+
**Example:**
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
/flux/create-pr
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## `/flux/review`
|
|
249
|
+
|
|
250
|
+
Full code review of changed files with severity ratings. Optionally targets a specific PR by number.
|
|
251
|
+
|
|
252
|
+
```
|
|
253
|
+
/flux/review [PR#]
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
| Argument | Required | Description |
|
|
257
|
+
| -------- | -------- | ----------------------------------------------------------------------------------------------------- |
|
|
258
|
+
| `PR#` | optional | PR number to review (e.g. `123`). If omitted, reviews the current branch against its detected parent. |
|
|
259
|
+
|
|
260
|
+
**Examples:**
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
/flux/review # review current branch
|
|
264
|
+
/flux/review 123 # review PR #123
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Output: review files are written to the flux review directory (`~/.flux/<flattened-dir>/review/`), and then zipped as `review.zip` in the same parent directory.
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## `/flux/address-feedback`
|
|
272
|
+
|
|
273
|
+
Convert review files into actionable todo tasks in the flux todo directory.
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
/flux/address-feedback [/path/to/review.zip]
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
| Argument | Required | Description |
|
|
280
|
+
| --------------------- | -------- | ---------------------------------------------- |
|
|
281
|
+
| `/path/to/review.zip` | optional | Path to a zip file received from a reviewer |
|
|
282
|
+
| _(empty)_ | - | If omitted, uses the local flux review folder. |
|
|
283
|
+
|
|
284
|
+
**Examples:**
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
/flux/address-feedback ~/Desktop/review.zip # processed received zip file
|
|
288
|
+
/flux/address-feedback # uses local review folder
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## `/flux/rebase`
|
|
294
|
+
|
|
295
|
+
Rebase the current branch onto the latest `main`, preserving each commit individually. Handles clean-tree check (with stash option), conflict resolution per commit, and force-with-lease push.
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
/flux/rebase
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
| Argument | Required | Description |
|
|
302
|
+
| --------- | -------- | ------------------- |
|
|
303
|
+
| _(empty)_ | — | No arguments needed |
|
|
304
|
+
|
|
305
|
+
**What it does:**
|
|
306
|
+
|
|
307
|
+
1. Captures current branch state (commits, changed files)
|
|
308
|
+
2. Checks working tree is clean — offers to stash if not
|
|
309
|
+
3. Fetches and syncs local `main` with `origin/main`
|
|
310
|
+
4. Identifies potential conflict hotspots
|
|
311
|
+
5. Runs `git rebase main` — replays your commits on top of latest main
|
|
312
|
+
6. Guides through conflict resolution per commit (text, modify/delete, binary, rename, submodule)
|
|
313
|
+
7. Verifies history and changed files after rebase
|
|
314
|
+
8. Asks whether to push (`git push -u` for new branches, `--force-with-lease` for existing)
|
|
315
|
+
9. Offers to pop the stash if one was created in step 2
|
|
316
|
+
|
|
317
|
+
**Example:**
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
/flux/rebase
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## `/flux/squash-commits`
|
|
326
|
+
|
|
327
|
+
Squash all unmerged commits (commits on your branch not yet on the default branch) into a single commit. Handles clean-tree check (with stash option), detects out-of-sync remote branches, and offers force-with-lease push.
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
/flux/squash-commits
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
| Argument | Required | Description |
|
|
334
|
+
| --------- | -------- | ------------------- |
|
|
335
|
+
| _(empty)_ | — | No arguments needed |
|
|
336
|
+
|
|
337
|
+
**What it does:**
|
|
338
|
+
|
|
339
|
+
1. Captures current branch state (commits, changed files)
|
|
340
|
+
2. Checks working tree is clean — offers to stash if not
|
|
341
|
+
3. Checks the branch is not behind its remote counterpart — aborts with instructions if so
|
|
342
|
+
4. Shows commits to squash and asks for confirmation
|
|
343
|
+
5. Builds a combined commit message from all individual messages (bulleted list, oldest first) — user can override
|
|
344
|
+
6. Squashes via `git reset --soft` + `git commit`
|
|
345
|
+
7. Verifies result — confirms exactly 1 commit and correct diff
|
|
346
|
+
8. Asks whether to push (`git push -u` for new branches, `--force-with-lease` for existing)
|
|
347
|
+
9. Offers to pop the stash if one was created in step 2
|
|
348
|
+
|
|
349
|
+
**Example:**
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
/flux/squash-commits
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## `/flux/auto-pilot`
|
|
358
|
+
|
|
359
|
+
Orchestrate the complete **PIPELINE A** sequence end-to-end from a single prompt. Pauses only during `/flux/ask` for clarifying questions.
|
|
360
|
+
|
|
361
|
+
```
|
|
362
|
+
/flux/auto-pilot <prompt | spec.md | spec.txt | TICKET-ID>
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
| Argument | Required | Description |
|
|
366
|
+
| ---------------------- | ------------------ | ----------------------------------------------------------------------- |
|
|
367
|
+
| `prompt` | mandatory (one of) | Natural language description of the task |
|
|
368
|
+
| `spec.md` / `spec.txt` | mandatory (alt) | Path to a spec file — contents used as the task description |
|
|
369
|
+
| `TICKET-ID` | mandatory (alt) | Jira ticket key — fetches summary, description, and acceptance criteria |
|
|
370
|
+
|
|
371
|
+
**Examples:**
|
|
372
|
+
|
|
373
|
+
```
|
|
374
|
+
/flux/auto-pilot "Add real-time notifications"
|
|
375
|
+
/flux/auto-pilot ./specs/notifications.md
|
|
376
|
+
/flux/auto-pilot MYPROJ-123
|
|
377
|
+
/flux/auto-pilot CLIAPP-456
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
**Stages executed automatically:**
|
|
381
|
+
|
|
382
|
+
1. `/flux/new` → create task file
|
|
383
|
+
2. `/flux/ask` → clarify requirements _(only user pause)_
|
|
384
|
+
3. `/clear`
|
|
385
|
+
4. `/flux/split` → decompose into subtasks
|
|
386
|
+
5. `/flux/aug 2` → augment with 2 agents
|
|
387
|
+
6. `/clear`
|
|
388
|
+
7. `/flux/exec 2` → execute with 2 agents
|
|
389
|
+
8. `/clear`
|
|
390
|
+
9. `/flux/qa 2` → QA with 2 agents (up to 3 cycles)
|
|
391
|
+
10. `/flux/tests` → fix test regressions
|
|
392
|
+
11. `/flux/commit` → commit _(asks for confirmation)_
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: about
|
|
3
|
+
description: Display a brief overview of Flux — structured AI dev pipeline
|
|
4
|
+
exec: {python} {script:flux_about.py} --source {command:flux/about.md}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /flux/about
|
|
8
|
+
|
|
9
|
+
Output the following overview exactly as written. Do not add commentary, do not fetch anything, do not modify the content.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
🌀 **Flux** — Structured AI Dev Pipeline
|
|
14
|
+
|
|
15
|
+
Flux turns chaotic AI coding sessions into a smooth, repeatable workflow. Instead of one giant "do everything" prompt, Flux breaks work into focused, per-file pipeline steps — keeping the AI sharp and your context clean.
|
|
16
|
+
|
|
17
|
+
**The 9-Step Pipeline:**
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
new → ask → split → aug → exec → qa → tests → commit → create-pr
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Command | What it does |
|
|
24
|
+
| ------------------ | ------------------------------------------------------ |
|
|
25
|
+
| `/flux/new` | Create a task file from a description or Jira ticket |
|
|
26
|
+
| `/flux/ask` | Clarify requirements & research the codebase |
|
|
27
|
+
| `/flux/split` | Break large tasks into focused subtasks |
|
|
28
|
+
| `/flux/aug` | Deep research: annotate tasks with exact file paths |
|
|
29
|
+
| `/flux/exec` | Implement — precisely what the spec says, no more |
|
|
30
|
+
| `/flux/qa` | Score vs acceptance criteria; loop until 10/10 |
|
|
31
|
+
| `/flux/tests` | Fix regressions without touching pre-existing failures |
|
|
32
|
+
| `/flux/commit` | Craft a meaningful commit message, ask confirmation |
|
|
33
|
+
| `/flux/create-pr` | Open a GitHub PR with full task-derived description |
|
|
34
|
+
|
|
35
|
+
**Utility Commands:**
|
|
36
|
+
|
|
37
|
+
| Command | What it does |
|
|
38
|
+
| ------------------------- | -------------------------------------------------------------------- |
|
|
39
|
+
| `/flux/config` | One-time setup: configure the test command used by /flux/tests |
|
|
40
|
+
| `/flux/review` | Full code review vs parent branch; optionally targets a PR number |
|
|
41
|
+
| `/flux/address-feedback` | Convert review files into executable todo tasks |
|
|
42
|
+
| `/flux/auto-pilot` | Run the full pipeline end-to-end from a single prompt or Jira ticket |
|
|
43
|
+
| `/flux/status` | Show the status panel that displays task files and their status live |
|
|
44
|
+
| `/flux/cheatsheet` | Show the //flux pipeline cheatsheet (all stages, colorized) |
|
|
45
|
+
|
|
46
|
+
**Key Benefits:**
|
|
47
|
+
|
|
48
|
+
- **Crash-proof** — all state lives in `~/.flux/`; resume anytime after a crash or restart
|
|
49
|
+
- **Context-safe** — `/clear` between steps is encouraged; `aug` output persists to disk
|
|
50
|
+
- **Parallel agents** — `aug`, `exec`, and `qa` all support concurrent multi-agent runs
|
|
51
|
+
- **QA gate** — nothing ships until it scores 10/10 against acceptance criteria
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: address-feedback
|
|
3
|
+
argument-hint: /path/to/review.zip(optional) | additional_instructions
|
|
4
|
+
description: Convert review files into todo tasks.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ADDRESS FEEDBACK
|
|
8
|
+
|
|
9
|
+
Convert review files into individual todo task files.
|
|
10
|
+
|
|
11
|
+
## STEP 1: Resolve input
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
FLUX_ROOT="${FLUX_ROOT:-$HOME/.flux}"
|
|
15
|
+
FLUX_DIR=$(printf '%s' "$(pwd -P)" | tr -cs 'a-zA-Z0-9' '-')
|
|
16
|
+
FLUX_BASE="$FLUX_ROOT/$FLUX_DIR"
|
|
17
|
+
mkdir -p "$FLUX_BASE/todo" "$FLUX_BASE/done" "$FLUX_BASE/review"
|
|
18
|
+
echo "FLUX_BASE=$FLUX_BASE"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Routing:**
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
IF $ARGUMENTS is non-empty:
|
|
25
|
+
-> test -f "$ARGUMENTS" — if not found: print "Error: Zip file not found: $ARGUMENTS" and stop
|
|
26
|
+
-> proceed to STEP 2 unzip using $ARGUMENTS as zip path
|
|
27
|
+
|
|
28
|
+
IF $ARGUMENTS is empty:
|
|
29
|
+
-> ask_user_question with options:
|
|
30
|
+
1. "Address review already present in the flux review folder ($FLUX_BASE/review)"
|
|
31
|
+
2. "I want to provide the path to a review zip file I received."
|
|
32
|
+
3. "Something else"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## STEP 2: Populate review
|
|
36
|
+
|
|
37
|
+
- Option 1 (review already present): no action needed, proceed to STEP 3.
|
|
38
|
+
- Option 2 (zip provided): unzip into `$FLUX_BASE/review/`:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
unzip -o "$ARGUMENTS" -d "$FLUX_BASE/review/"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## STEP 3: Flatten by priority (in-place inside review/)
|
|
45
|
+
|
|
46
|
+
Flatten priority subdirectories into prefixed flat files, all within `$FLUX_BASE/review/`:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
for priority in low medium high critical; do
|
|
50
|
+
dir="$FLUX_BASE/review/${priority}"
|
|
51
|
+
if [ -d "$dir" ]; then
|
|
52
|
+
prefix=$(echo "$priority" | tr '[:lower:]' '[:upper:]')
|
|
53
|
+
for file in "$dir"/*; do
|
|
54
|
+
[ -f "$file" ] || continue
|
|
55
|
+
filename=$(basename "$file")
|
|
56
|
+
mv "$file" "$FLUX_BASE/review/${prefix}-${filename}"
|
|
57
|
+
done
|
|
58
|
+
rmdir "$dir"
|
|
59
|
+
fi
|
|
60
|
+
done
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
prefixed_count=$(ls "$FLUX_BASE/review/"{LOW,MEDIUM,HIGH,CRITICAL}-*.md 2>/dev/null | wc -l | tr -d ' ') || true
|
|
65
|
+
if [ "$prefixed_count" -eq 0 ]; then
|
|
66
|
+
unprefixed=$(ls "$FLUX_BASE/review/"*.md 2>/dev/null | grep -v -E '/(LOW|MEDIUM|HIGH|CRITICAL)-' | wc -l | tr -d ' ')
|
|
67
|
+
if [ "$unprefixed" -gt 0 ]; then
|
|
68
|
+
echo "⚠️ WARNING: No priority-prefixed files found after flattening."
|
|
69
|
+
echo "The review appears to have a flat structure (no low/medium/high/critical subdirectories)."
|
|
70
|
+
echo "Found $unprefixed unprefixed .md files. These will NOT be processed by STEP 4."
|
|
71
|
+
echo "Files found without priority prefix:"
|
|
72
|
+
ls "$FLUX_BASE/review/"*.md 2>/dev/null | grep -v -E '/(LOW|MEDIUM|HIGH|CRITICAL)-' | sed 's|.*/||' || echo "(none)"
|
|
73
|
+
echo "Ensure the review was generated by /flux/review which creates the priority subdirectory structure."
|
|
74
|
+
fi
|
|
75
|
+
fi
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
List all `LOW-*`, `MEDIUM-*`, `HIGH-*`, `CRITICAL-*` files in `$FLUX_BASE/review/` to confirm.
|
|
79
|
+
|
|
80
|
+
## STEP 4: Move to todo
|
|
81
|
+
|
|
82
|
+
Move all flattened files from `review/` to `todo/`, leaving `review/` empty:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
for file in "$FLUX_BASE/review/"{LOW,MEDIUM,HIGH,CRITICAL}-*.md; do
|
|
86
|
+
[ -f "$file" ] || continue
|
|
87
|
+
mv "$file" "$FLUX_BASE/todo/"
|
|
88
|
+
done
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## STEP 5: Normalize frontmatter
|
|
92
|
+
|
|
93
|
+
For each `LOW-*`, `MEDIUM-*`, `HIGH-*`, `CRITICAL-*` file in `$FLUX_BASE/todo/`:
|
|
94
|
+
|
|
95
|
+
1. Derive: **priority** from filename prefix; **title** from filename sans prefix and `.md` extension, hyphens/underscores → spaces, title-cased (e.g. `HIGH-fix-null-pointer.md` → `Fix Null Pointer`); **status** = `todo`
|
|
96
|
+
2. Replace or insert frontmatter (if file starts with `---`, replace entire existing block — do not append a second one):
|
|
97
|
+
|
|
98
|
+
```yaml
|
|
99
|
+
---
|
|
100
|
+
title: <derived title>
|
|
101
|
+
priority: <LOW|MEDIUM|HIGH|CRITICAL>
|
|
102
|
+
status: todo
|
|
103
|
+
---
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
3. Preserve all content below frontmatter exactly.
|
|
107
|
+
4. Write file back.
|
|
108
|
+
|
|
109
|
+
## STEP 6: Summary
|
|
110
|
+
|
|
111
|
+
Print a summary table and per-priority counts:
|
|
112
|
+
|
|
113
|
+
| File | Priority |
|
|
114
|
+
| -------------- | -------- |
|
|
115
|
+
| LOW-example.md | LOW |
|
|
116
|
+
|
|
117
|
+
## HARD CONSTRAINTS
|
|
118
|
+
|
|
119
|
+
- **Path**: All file operations 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.
|
|
120
|
+
- `/flux/address-feedback` MUST NOT modify any source files. The only permitted file operations are: unzipping the review archive, moving files between `$FLUX_BASE/review/` and `$FLUX_BASE/todo/`, and updating frontmatter in todo task files. No git commands. No changes to `./src/` or other directories containing source files.
|
|
121
|
+
|
|
122
|
+
## Propose next step
|
|
123
|
+
|
|
124
|
+
Then propose the next step: `/flux/exec all` (include arguments if needed).
|
|
125
|
+
|
|
126
|
+
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.
|
|
127
|
+
|
|
128
|
+
=================
|
|
129
|
+
$ARGUMENTS
|