@rosetears/aili-pi 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/THIRD_PARTY_NOTICES.md +64 -0
- package/extensions/index.ts +6 -0
- package/install.sh +5 -0
- package/manifests/adapter-evidence.json +45 -0
- package/manifests/capabilities.json +124 -0
- package/manifests/live-verification.json +26 -0
- package/manifests/provenance.json +71 -0
- package/manifests/roles.json +474 -0
- package/manifests/sbom.json +7797 -0
- package/manifests/skill-compatibility.json +8100 -0
- package/manifests/subagent-provenance.json +37 -0
- package/package.json +91 -0
- package/prompts/build.md +8 -0
- package/prompts/define.md +8 -0
- package/prompts/ideate.md +8 -0
- package/prompts/local-review.md +8 -0
- package/prompts/ship.md +8 -0
- package/roles/agent-evaluator.md +47 -0
- package/roles/ai-regression-scout.md +47 -0
- package/roles/browser-qa-runner.md +47 -0
- package/roles/code-reviewer.md +47 -0
- package/roles/code-scout.md +47 -0
- package/roles/convergence-reviewer.md +55 -0
- package/roles/doc-researcher.md +47 -0
- package/roles/e2e-artifact-runner.md +47 -0
- package/roles/implementer.md +47 -0
- package/roles/opensource-sanitizer.md +47 -0
- package/roles/plan-auditor.md +47 -0
- package/roles/pr-test-analyzer.md +47 -0
- package/roles/security-auditor.md +47 -0
- package/roles/silent-failure-reviewer.md +47 -0
- package/roles/spec-miner.md +47 -0
- package/roles/test-coverage-reviewer.md +47 -0
- package/roles/test-engineer.md +48 -0
- package/roles/web-performance-auditor.md +47 -0
- package/roles/web-researcher.md +47 -0
- package/scripts/apply-adapter-evidence.ts +73 -0
- package/scripts/bootstrap.sh +180 -0
- package/scripts/generate-provenance.ts +143 -0
- package/scripts/local-package-e2e.ts +51 -0
- package/scripts/sync-roles.ts +213 -0
- package/scripts/sync-skills.ts +356 -0
- package/scripts/validate-runtime.ts +11 -0
- package/skills/academic-paper-review/SKILL.md +81 -0
- package/skills/agents-md-initialization/SKILL.md +121 -0
- package/skills/agents-md-initialization/references/agents-template.md +83 -0
- package/skills/agents-md-initialization/references/agents_md.py +215 -0
- package/skills/ai-regression-scout/SKILL.md +24 -0
- package/skills/aili-delivery-flow/SKILL.md +125 -0
- package/skills/aili-delivery-flow/references/artifact-contracts.md +138 -0
- package/skills/aili-delivery-flow/references/backend-routing.md +40 -0
- package/skills/aili-delivery-flow/references/build-execution-loop.md +113 -0
- package/skills/aili-delivery-flow/references/build-goal-mode.md +3 -0
- package/skills/aili-delivery-flow/references/direct-vs-delegated-work.md +38 -0
- package/skills/aili-delivery-flow/references/implementation-packages.md +54 -0
- package/skills/aili-delivery-flow/references/lifecycle.md +127 -0
- package/skills/aili-delivery-flow/references/protocols/acceptance-test-plan.md +18 -0
- package/skills/aili-delivery-flow/references/protocols/alignment-questionnaire.md +10 -0
- package/skills/aili-delivery-flow/references/protocols/closeout-report.md +101 -0
- package/skills/aili-delivery-flow/references/protocols/compact-evidence-pack.md +46 -0
- package/skills/aili-delivery-flow/references/protocols/idea-brief.md +10 -0
- package/skills/aili-delivery-flow/references/protocols/implementation-package.md +53 -0
- package/skills/aili-delivery-flow/references/protocols/research-evidence-pack.md +19 -0
- package/skills/aili-delivery-flow/references/protocols/review-report.md +7 -0
- package/skills/aili-delivery-flow/references/protocols/spec-draft.md +12 -0
- package/skills/aili-delivery-flow/references/protocols/subagent-result.md +60 -0
- package/skills/aili-delivery-flow/references/protocols/subagent-task-packet.md +29 -0
- package/skills/aili-delivery-flow/references/protocols/worktree-context.md +109 -0
- package/skills/aili-delivery-flow/references/questionnaire-policy.md +62 -0
- package/skills/aili-delivery-flow/references/review-repair-loop.md +16 -0
- package/skills/aili-delivery-flow/references/test-document-policy.md +35 -0
- package/skills/android-native-dev/SKILL.md +722 -0
- package/skills/android-native-dev/references/accessibility.md +209 -0
- package/skills/android-native-dev/references/adaptive-screens.md +231 -0
- package/skills/android-native-dev/references/design-style-guide.md +365 -0
- package/skills/android-native-dev/references/functional-requirements.md +229 -0
- package/skills/android-native-dev/references/motion-system.md +203 -0
- package/skills/android-native-dev/references/performance-stability.md +223 -0
- package/skills/android-native-dev/references/privacy-security.md +244 -0
- package/skills/android-native-dev/references/testing.md +554 -0
- package/skills/android-native-dev/references/visual-design.md +246 -0
- package/skills/api-and-interface-design/SKILL.md +318 -0
- package/skills/browser-qa/SKILL.md +32 -0
- package/skills/browser-testing-with-devtools/SKILL.md +323 -0
- package/skills/build-failure-repair/SKILL.md +49 -0
- package/skills/chart-visualization/SKILL.md +73 -0
- package/skills/ci-cd-and-automation/SKILL.md +353 -0
- package/skills/code-review-and-quality/SKILL.md +375 -0
- package/skills/code-review-quality-gates/SKILL.md +132 -0
- package/skills/code-simplification/SKILL.md +371 -0
- package/skills/comment-accuracy-review/SKILL.md +37 -0
- package/skills/consulting-analysis/SKILL.md +69 -0
- package/skills/context-engineering/SKILL.md +375 -0
- package/skills/coverage-review/SKILL.md +24 -0
- package/skills/data-analysis/SKILL.md +74 -0
- package/skills/deprecation-and-migration/SKILL.md +222 -0
- package/skills/documentation-and-adrs/SKILL.md +330 -0
- package/skills/e2e-artifact-handling/SKILL.md +30 -0
- package/skills/evidence-scoped-retrospective/SKILL.md +156 -0
- package/skills/explain-by-allegory/SKILL.md +99 -0
- package/skills/flutter-dev/SKILL.md +162 -0
- package/skills/flutter-dev/references/animations.md +497 -0
- package/skills/flutter-dev/references/bloc-state.md +281 -0
- package/skills/flutter-dev/references/forms.md +656 -0
- package/skills/flutter-dev/references/gorouter-navigation.md +257 -0
- package/skills/flutter-dev/references/localization.md +510 -0
- package/skills/flutter-dev/references/networking.md +566 -0
- package/skills/flutter-dev/references/performance.md +305 -0
- package/skills/flutter-dev/references/platform-specific.md +417 -0
- package/skills/flutter-dev/references/project-structure.md +273 -0
- package/skills/flutter-dev/references/riverpod-state.md +232 -0
- package/skills/flutter-dev/references/testing.md +364 -0
- package/skills/flutter-dev/references/widget-patterns.md +233 -0
- package/skills/frontend-dev/SKILL.md +468 -0
- package/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/frontend-dev/references/asset-prompt-guide.md +43 -0
- package/skills/frontend-dev/references/env-setup.md +33 -0
- package/skills/frontend-dev/references/minimax-cli-reference.md +133 -0
- package/skills/frontend-dev/references/minimax-image-guide.md +65 -0
- package/skills/frontend-dev/references/minimax-music-guide.md +216 -0
- package/skills/frontend-dev/references/minimax-tts-guide.md +78 -0
- package/skills/frontend-dev/references/minimax-video-guide.md +82 -0
- package/skills/frontend-dev/references/minimax-voice-catalog.md +685 -0
- package/skills/frontend-dev/references/motion-recipes.md +407 -0
- package/skills/frontend-dev/references/troubleshooting.md +85 -0
- package/skills/frontend-dev/scripts/minimax_image.py +137 -0
- package/skills/frontend-dev/scripts/minimax_music.py +157 -0
- package/skills/frontend-dev/scripts/minimax_tts.py +127 -0
- package/skills/frontend-dev/scripts/minimax_video.py +187 -0
- package/skills/frontend-dev/templates/generator_template.js +223 -0
- package/skills/frontend-dev/templates/viewer.html +599 -0
- package/skills/frontend-ui-engineering/SKILL.md +367 -0
- package/skills/fullstack-dev/SKILL.md +819 -0
- package/skills/fullstack-dev/references/api-design.md +444 -0
- package/skills/fullstack-dev/references/auth-flow.md +165 -0
- package/skills/fullstack-dev/references/db-schema.md +706 -0
- package/skills/fullstack-dev/references/django-best-practices.md +466 -0
- package/skills/fullstack-dev/references/environment-management.md +78 -0
- package/skills/fullstack-dev/references/release-checklist.md +278 -0
- package/skills/fullstack-dev/references/technology-selection.md +254 -0
- package/skills/fullstack-dev/references/testing-strategy.md +404 -0
- package/skills/git-workflow-and-versioning/SKILL.md +446 -0
- package/skills/github-evidence-triage/SKILL.md +115 -0
- package/skills/harness-evolution/SKILL.md +59 -0
- package/skills/harness-evolution/references/activation-matrix.md +13 -0
- package/skills/harness-evolution/references/approval-policy.md +20 -0
- package/skills/harness-evolution/references/change-report-template.md +33 -0
- package/skills/harness-evolution/references/component-taxonomy.md +19 -0
- package/skills/harness-evolution/references/verdict-policy.md +13 -0
- package/skills/harness-issue-triage/SKILL.md +72 -0
- package/skills/harness-issue-triage/references/component-diagnosis.md +25 -0
- package/skills/harness-issue-triage/references/triage-report-template.md +34 -0
- package/skills/harness-optimization-audit/SKILL.md +125 -0
- package/skills/idea-refine/SKILL.md +191 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/SKILL.upstream.md +178 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/examples.md +238 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/frameworks.md +99 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/refinement-criteria.md +113 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/scripts/idea-refine.upstream.sh +15 -0
- package/skills/incremental-implementation/SKILL.md +252 -0
- package/skills/ios-application-dev/SKILL.md +212 -0
- package/skills/ios-application-dev/references/accessibility.md +259 -0
- package/skills/ios-application-dev/references/graphics-animation.md +350 -0
- package/skills/ios-application-dev/references/layout-system.md +199 -0
- package/skills/ios-application-dev/references/metal-shader.md +178 -0
- package/skills/ios-application-dev/references/navigation-patterns.md +175 -0
- package/skills/ios-application-dev/references/swift-coding-standards.md +757 -0
- package/skills/ios-application-dev/references/swiftui-design-guidelines.md +1167 -0
- package/skills/ios-application-dev/references/system-integration.md +401 -0
- package/skills/ios-application-dev/references/uikit-components.md +297 -0
- package/skills/local-review-gate/SKILL.md +207 -0
- package/skills/local-review-gate/references/addyosmani-code-review-rubric.md +33 -0
- package/skills/local-review-gate/references/codex-github-compatibility.md +26 -0
- package/skills/local-review-gate/references/ecc-code-review-adaptation.md +40 -0
- package/skills/local-review-gate/references/graphify-local-review.md +33 -0
- package/skills/local-review-gate/references/orchestration-adaptation.md +51 -0
- package/skills/local-review-gate/references/review-repair-lane-adaptation.md +46 -0
- package/skills/local-review-gate/references/upstream-provenance.md +61 -0
- package/skills/mature-project-pattern-research/SKILL.md +155 -0
- package/skills/mature-project-pattern-research/references/research-rubric.md +45 -0
- package/skills/minimax-docx/LICENSE +21 -0
- package/skills/minimax-docx/SKILL.md +273 -0
- package/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
- package/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
- package/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
- package/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
- package/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
- package/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
- package/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
- package/skills/minimax-docx/references/cjk_typography.md +357 -0
- package/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
- package/skills/minimax-docx/references/comments_guide.md +191 -0
- package/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
- package/skills/minimax-docx/references/design_principles.md +819 -0
- package/skills/minimax-docx/references/openxml_element_order.md +308 -0
- package/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
- package/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
- package/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
- package/skills/minimax-docx/references/openxml_namespaces.md +82 -0
- package/skills/minimax-docx/references/openxml_units.md +72 -0
- package/skills/minimax-docx/references/scenario_a_create.md +284 -0
- package/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
- package/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
- package/skills/minimax-docx/references/track_changes_guide.md +200 -0
- package/skills/minimax-docx/references/troubleshooting.md +506 -0
- package/skills/minimax-docx/references/typography_guide.md +294 -0
- package/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
- package/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
- package/skills/minimax-docx/scripts/docx_preview.sh +37 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
- package/skills/minimax-docx/scripts/env_check.sh +196 -0
- package/skills/minimax-docx/scripts/setup.ps1 +274 -0
- package/skills/minimax-docx/scripts/setup.sh +504 -0
- package/skills/minimax-pdf/README.md +222 -0
- package/skills/minimax-pdf/SKILL.md +218 -0
- package/skills/minimax-pdf/design/design.md +381 -0
- package/skills/minimax-pdf/scripts/cover.py +1579 -0
- package/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
- package/skills/minimax-pdf/scripts/fill_write.py +242 -0
- package/skills/minimax-pdf/scripts/make.sh +491 -0
- package/skills/minimax-pdf/scripts/merge.py +112 -0
- package/skills/minimax-pdf/scripts/palette.py +521 -0
- package/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
- package/skills/minimax-pdf/scripts/render_body.py +1052 -0
- package/skills/minimax-pdf/scripts/render_cover.js +111 -0
- package/skills/minimax-xlsx/SKILL.md +156 -0
- package/skills/minimax-xlsx/references/create.md +691 -0
- package/skills/minimax-xlsx/references/edit.md +684 -0
- package/skills/minimax-xlsx/references/fix.md +37 -0
- package/skills/minimax-xlsx/references/format.md +768 -0
- package/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
- package/skills/minimax-xlsx/references/read-analyze.md +97 -0
- package/skills/minimax-xlsx/references/validate.md +772 -0
- package/skills/minimax-xlsx/scripts/formula_check.py +422 -0
- package/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
- package/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
- package/skills/minimax-xlsx/scripts/style_audit.py +575 -0
- package/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
- package/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
- package/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
- package/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
- package/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
- package/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
- package/skills/newsletter-generation/SKILL.md +71 -0
- package/skills/oss-release-readiness/SKILL.md +47 -0
- package/skills/parallel-subagent-dispatch/SKILL.md +58 -0
- package/skills/performance-optimization/SKILL.md +364 -0
- package/skills/planning-and-task-breakdown/SKILL.md +290 -0
- package/skills/pptx-generator/SKILL.md +275 -0
- package/skills/pptx-generator/references/design-system.md +392 -0
- package/skills/pptx-generator/references/editing.md +162 -0
- package/skills/pptx-generator/references/pitfalls.md +112 -0
- package/skills/pptx-generator/references/pptxgenjs.md +420 -0
- package/skills/pptx-generator/references/slide-types.md +413 -0
- package/skills/pr-test-analysis/SKILL.md +24 -0
- package/skills/react-native-dev/SKILL.md +180 -0
- package/skills/react-native-dev/references/animations.md +254 -0
- package/skills/react-native-dev/references/components.md +124 -0
- package/skills/react-native-dev/references/engineering.md +527 -0
- package/skills/react-native-dev/references/forms.md +300 -0
- package/skills/react-native-dev/references/native-capabilities.md +163 -0
- package/skills/react-native-dev/references/navigation.md +271 -0
- package/skills/react-native-dev/references/networking.md +346 -0
- package/skills/react-native-dev/references/performance.md +215 -0
- package/skills/react-native-dev/references/state-management.md +230 -0
- package/skills/react-native-dev/references/styling.md +117 -0
- package/skills/react-native-dev/references/testing.md +341 -0
- package/skills/requirements-grilling/SKILL.md +447 -0
- package/skills/requirements-grilling/references/ADR-FORMAT.md +46 -0
- package/skills/requirements-grilling/references/CONTEXT-FORMAT.md +41 -0
- package/skills/requirements-grilling/references/INTERVIEW-PACKET-FORMAT.md +62 -0
- package/skills/requirements-grilling/references/MIT-LICENSE-MATT-POCOCK.md +25 -0
- package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
- package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
- package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/interview-me/SKILL.upstream.md +225 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/LICENSE +21 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/NOTICE.md +12 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/batch-grill-me/SKILL.upstream.md +15 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grill-me/SKILL.upstream.md +7 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grilling/SKILL.upstream.md +12 -0
- package/skills/review-pipeline/SKILL.md +38 -0
- package/skills/rose-memory/SKILL.md +210 -0
- package/skills/rose-memory/references/README.md +48 -0
- package/skills/rose-memory/references/memory_cli.py +2384 -0
- package/skills/rose-memory/references/schema.sql +315 -0
- package/skills/security-and-hardening/SKILL.md +369 -0
- package/skills/session-handoff/SKILL.md +88 -0
- package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
- package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
- package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/handoff/SKILL.upstream.md +16 -0
- package/skills/session-handoff/scripts/session_handoff.py +764 -0
- package/skills/shader-dev/SKILL.md +316 -0
- package/skills/shader-dev/reference/ambient-occlusion.md +382 -0
- package/skills/shader-dev/reference/analytic-ray-tracing.md +651 -0
- package/skills/shader-dev/reference/anti-aliasing.md +71 -0
- package/skills/shader-dev/reference/atmospheric-scattering.md +571 -0
- package/skills/shader-dev/reference/camera-effects.md +80 -0
- package/skills/shader-dev/reference/cellular-automata.md +635 -0
- package/skills/shader-dev/reference/color-palette.md +481 -0
- package/skills/shader-dev/reference/csg-boolean-operations.md +466 -0
- package/skills/shader-dev/reference/domain-repetition.md +436 -0
- package/skills/shader-dev/reference/domain-warping.md +419 -0
- package/skills/shader-dev/reference/fluid-simulation.md +425 -0
- package/skills/shader-dev/reference/fractal-rendering.md +525 -0
- package/skills/shader-dev/reference/lighting-model.md +639 -0
- package/skills/shader-dev/reference/matrix-transform.md +535 -0
- package/skills/shader-dev/reference/multipass-buffer.md +571 -0
- package/skills/shader-dev/reference/normal-estimation.md +418 -0
- package/skills/shader-dev/reference/particle-system.md +589 -0
- package/skills/shader-dev/reference/path-tracing-gi.md +602 -0
- package/skills/shader-dev/reference/polar-uv-manipulation.md +521 -0
- package/skills/shader-dev/reference/post-processing.md +375 -0
- package/skills/shader-dev/reference/procedural-2d-pattern.md +439 -0
- package/skills/shader-dev/reference/procedural-noise.md +551 -0
- package/skills/shader-dev/reference/ray-marching.md +396 -0
- package/skills/shader-dev/reference/sdf-2d.md +724 -0
- package/skills/shader-dev/reference/sdf-3d.md +805 -0
- package/skills/shader-dev/reference/sdf-tricks.md +63 -0
- package/skills/shader-dev/reference/shadow-techniques.md +476 -0
- package/skills/shader-dev/reference/simulation-physics.md +644 -0
- package/skills/shader-dev/reference/sound-synthesis.md +578 -0
- package/skills/shader-dev/reference/terrain-rendering.md +839 -0
- package/skills/shader-dev/reference/texture-mapping-advanced.md +87 -0
- package/skills/shader-dev/reference/texture-sampling.md +553 -0
- package/skills/shader-dev/reference/volumetric-rendering.md +608 -0
- package/skills/shader-dev/reference/voronoi-cellular-noise.md +486 -0
- package/skills/shader-dev/reference/voxel-rendering.md +701 -0
- package/skills/shader-dev/reference/water-ocean.md +445 -0
- package/skills/shader-dev/reference/webgl-pitfalls.md +41 -0
- package/skills/shader-dev/techniques/ambient-occlusion.md +364 -0
- package/skills/shader-dev/techniques/analytic-ray-tracing.md +542 -0
- package/skills/shader-dev/techniques/anti-aliasing.md +124 -0
- package/skills/shader-dev/techniques/atmospheric-scattering.md +522 -0
- package/skills/shader-dev/techniques/camera-effects.md +115 -0
- package/skills/shader-dev/techniques/cellular-automata.md +531 -0
- package/skills/shader-dev/techniques/color-palette.md +380 -0
- package/skills/shader-dev/techniques/csg-boolean-operations.md +491 -0
- package/skills/shader-dev/techniques/domain-repetition.md +333 -0
- package/skills/shader-dev/techniques/domain-warping.md +414 -0
- package/skills/shader-dev/techniques/fluid-simulation.md +1175 -0
- package/skills/shader-dev/techniques/fractal-rendering.md +436 -0
- package/skills/shader-dev/techniques/lighting-model.md +527 -0
- package/skills/shader-dev/techniques/matrix-transform.md +455 -0
- package/skills/shader-dev/techniques/multipass-buffer.md +922 -0
- package/skills/shader-dev/techniques/normal-estimation.md +318 -0
- package/skills/shader-dev/techniques/particle-system.md +1203 -0
- package/skills/shader-dev/techniques/path-tracing-gi.md +623 -0
- package/skills/shader-dev/techniques/polar-uv-manipulation.md +373 -0
- package/skills/shader-dev/techniques/post-processing.md +788 -0
- package/skills/shader-dev/techniques/procedural-2d-pattern.md +346 -0
- package/skills/shader-dev/techniques/procedural-noise.md +554 -0
- package/skills/shader-dev/techniques/ray-marching.md +467 -0
- package/skills/shader-dev/techniques/sdf-2d.md +631 -0
- package/skills/shader-dev/techniques/sdf-3d.md +589 -0
- package/skills/shader-dev/techniques/sdf-tricks.md +100 -0
- package/skills/shader-dev/techniques/shadow-techniques.md +776 -0
- package/skills/shader-dev/techniques/simulation-physics.md +1542 -0
- package/skills/shader-dev/techniques/sound-synthesis.md +490 -0
- package/skills/shader-dev/techniques/terrain-rendering.md +408 -0
- package/skills/shader-dev/techniques/texture-mapping-advanced.md +121 -0
- package/skills/shader-dev/techniques/texture-sampling.md +382 -0
- package/skills/shader-dev/techniques/volumetric-rendering.md +375 -0
- package/skills/shader-dev/techniques/voronoi-cellular-noise.md +458 -0
- package/skills/shader-dev/techniques/voxel-rendering.md +985 -0
- package/skills/shader-dev/techniques/water-ocean.md +490 -0
- package/skills/shader-dev/techniques/webgl-pitfalls.md +170 -0
- package/skills/shipping-and-launch/SKILL.md +334 -0
- package/skills/silent-failure-hunting/SKILL.md +24 -0
- package/skills/source-driven-development/SKILL.md +223 -0
- package/skills/spec-driven-development/SKILL.md +235 -0
- package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
- package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
- package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/spec-driven-development/SKILL.upstream.md +206 -0
- package/skills/strategy-stress-test/SKILL.md +185 -0
- package/skills/systematic-literature-review/SKILL.md +77 -0
- package/skills/test-document-generator/SKILL.md +152 -0
- package/skills/test-document-generator/references/test-document-template.md +45 -0
- package/skills/test-driven-development/SKILL.md +399 -0
- package/skills/write-skills/GLOSSARY.md +113 -0
- package/skills/write-skills/SKILL.md +133 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/GLOSSARY.md +201 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/SKILL.upstream.md +83 -0
- package/src/runtime/child-guard.ts +70 -0
- package/src/runtime/conflicts.ts +25 -0
- package/src/runtime/contracts.ts +9 -0
- package/src/runtime/doctor.ts +134 -0
- package/src/runtime/global-resources.ts +152 -0
- package/src/runtime/index.ts +23 -0
- package/src/runtime/lifecycle.ts +19 -0
- package/src/runtime/native-integrations.ts +44 -0
- package/src/runtime/path-boundaries.ts +69 -0
- package/src/runtime/registry.ts +213 -0
- package/src/runtime/roles.ts +64 -0
- package/src/runtime/rose-context.ts +24 -0
- package/src/runtime/subagents.ts +426 -0
- package/templates/APPEND_SYSTEM.md +12 -0
- package/upstream/aili-workflows.lock.json +3226 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-optimization
|
|
3
|
+
description: Optimize a measured performance problem when the user names a latency/load/Core Web Vitals/resource target or current profiling evidence identifies a bottleneck; do not trigger from generic implementation, review, or an unsupported suspicion that code may be slow.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Performance Optimization
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Measure before optimizing. Performance work without measurement is guessing — and guessing leads to premature optimization that adds complexity without improving what matters. Profile first, identify the actual bottleneck, fix it, measure again. Optimize only what measurements prove matters.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Performance requirements exist in the spec (load time budgets, response time SLAs)
|
|
15
|
+
- Users or monitoring report slow behavior
|
|
16
|
+
- Core Web Vitals scores are below thresholds
|
|
17
|
+
- You suspect a change introduced a regression
|
|
18
|
+
- Building features that handle large datasets or high traffic
|
|
19
|
+
|
|
20
|
+
**When NOT to use:** Don't optimize before you have evidence of a problem. Premature optimization adds complexity that costs more than the performance it gains.
|
|
21
|
+
|
|
22
|
+
## Core Web Vitals Targets
|
|
23
|
+
|
|
24
|
+
| Metric | Good | Needs Improvement | Poor |
|
|
25
|
+
|--------|------|-------------------|------|
|
|
26
|
+
| **LCP** (Largest Contentful Paint) | ≤ 2.5s | ≤ 4.0s | > 4.0s |
|
|
27
|
+
| **INP** (Interaction to Next Paint) | ≤ 200ms | ≤ 500ms | > 500ms |
|
|
28
|
+
| **CLS** (Cumulative Layout Shift) | ≤ 0.1 | ≤ 0.25 | > 0.25 |
|
|
29
|
+
|
|
30
|
+
## The Optimization Workflow
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. MEASURE → Establish baseline with real data
|
|
34
|
+
2. IDENTIFY → Find the actual bottleneck (not assumed)
|
|
35
|
+
3. FIX → Address the specific bottleneck
|
|
36
|
+
4. VERIFY → Measure again, confirm improvement
|
|
37
|
+
5. GUARD → Add monitoring or tests to prevent regression
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 🔴 CHECKPOINT / 🛑 STOP: No Speculative Optimization
|
|
41
|
+
|
|
42
|
+
Do not optimize because a change "seems faster" or an anti-pattern is familiar. If there is no baseline measurement, user-reported symptom, production signal, or explicit performance budget, stop and return `BLOCKED_NEEDS_MEASUREMENT` instead of changing code.
|
|
43
|
+
|
|
44
|
+
### Step 1: Measure
|
|
45
|
+
|
|
46
|
+
Choose the smallest measurement source that can establish the accepted performance claim; use both only when the claim explicitly spans lab reproducibility and real-user impact:
|
|
47
|
+
|
|
48
|
+
- **Synthetic (Lighthouse, OpenCode Playwright/browser tooling, DevTools Performance tab):** Controlled conditions, reproducible. Best for CI regression detection and isolating specific issues.
|
|
49
|
+
- **RUM (web-vitals library, CrUX):** Real-user data in real conditions. Use when the claim concerns production/user impact and current policy allows the data source.
|
|
50
|
+
|
|
51
|
+
**Frontend:**
|
|
52
|
+
```bash
|
|
53
|
+
# Synthetic: Lighthouse in CI/manual runs
|
|
54
|
+
# OpenCode: return a concrete direct-browser evidence need to ROSE when runtime UI measurement is the smallest sufficient path
|
|
55
|
+
# Manual reference: Chrome DevTools → Performance tab → Record
|
|
56
|
+
|
|
57
|
+
# RUM: Web Vitals library in code
|
|
58
|
+
import { onLCP, onINP, onCLS } from 'web-vitals';
|
|
59
|
+
|
|
60
|
+
onLCP(console.log);
|
|
61
|
+
onINP(console.log);
|
|
62
|
+
onCLS(console.log);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Backend:**
|
|
66
|
+
```bash
|
|
67
|
+
# Response time logging
|
|
68
|
+
# Application Performance Monitoring (APM)
|
|
69
|
+
# Database query logging with timing
|
|
70
|
+
|
|
71
|
+
# Simple timing
|
|
72
|
+
console.time('db-query');
|
|
73
|
+
const result = await db.query(...);
|
|
74
|
+
console.timeEnd('db-query');
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Where to Start Measuring
|
|
78
|
+
|
|
79
|
+
Use the symptom to decide what to measure first:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
What is slow?
|
|
83
|
+
├── First page load
|
|
84
|
+
│ ├── Large bundle? --> Measure bundle size, check code splitting
|
|
85
|
+
│ ├── Slow server response? --> Measure TTFB in OpenCode browser network requests or DevTools Network waterfall
|
|
86
|
+
│ │ ├── DNS long? --> Add dns-prefetch / preconnect for known origins
|
|
87
|
+
│ │ ├── TCP/TLS long? --> Enable HTTP/2, check edge deployment, keep-alive
|
|
88
|
+
│ │ └── Waiting (server) long? --> Profile backend, check queries and caching
|
|
89
|
+
│ └── Render-blocking resources? --> Check network waterfall for CSS/JS blocking
|
|
90
|
+
├── Interaction feels sluggish
|
|
91
|
+
│ ├── UI freezes on click? --> Profile main thread, look for long tasks (>50ms)
|
|
92
|
+
│ ├── Form input lag? --> Check re-renders, controlled component overhead
|
|
93
|
+
│ └── Animation jank? --> Check layout thrashing, forced reflows
|
|
94
|
+
├── Page after navigation
|
|
95
|
+
│ ├── Data loading? --> Measure API response times, check for waterfalls
|
|
96
|
+
│ └── Client rendering? --> Profile component render time, check for N+1 fetches
|
|
97
|
+
└── Backend / API
|
|
98
|
+
├── Single endpoint slow? --> Profile database queries, check indexes
|
|
99
|
+
├── All endpoints slow? --> Check connection pool, memory, CPU
|
|
100
|
+
└── Intermittent slowness? --> Check for lock contention, GC pauses, external deps
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Measurement-Unavailable Fallbacks
|
|
104
|
+
|
|
105
|
+
| Trigger | First action | If still unresolved |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| Browser profiling unavailable | Capture network timing, console warnings, screenshot/snapshot, and available Performance API entries | Mark Core Web Vitals as `[UNVERIFIED]`; do not claim frontend improvement |
|
|
108
|
+
| Production/RUM data unavailable | Use reproducible synthetic measurements with device/network settings stated | Label the result `synthetic_only` and request RUM before broad rollout |
|
|
109
|
+
| Backend profiler unavailable | Add bounded timing around the suspected path or inspect existing logs/APM | Mark root cause as `Hypothesis`; do not rewrite unrelated code |
|
|
110
|
+
| Measurements conflict | Prefer production/RUM for user impact and synthetic traces for root cause | Hold optimization until the conflict is explained or scoped |
|
|
111
|
+
|
|
112
|
+
### Step 2: Identify the Bottleneck
|
|
113
|
+
|
|
114
|
+
Common bottlenecks by category:
|
|
115
|
+
|
|
116
|
+
**Frontend:**
|
|
117
|
+
|
|
118
|
+
| Symptom | Likely Cause | Investigation |
|
|
119
|
+
|---------|-------------|---------------|
|
|
120
|
+
| Slow LCP | Large images, render-blocking resources, slow server | Check network waterfall, image sizes |
|
|
121
|
+
| High CLS | Images without dimensions, late-loading content, font shifts | Check layout shift attribution |
|
|
122
|
+
| Poor INP | Heavy JavaScript on main thread, large DOM updates | Check long tasks in Performance trace |
|
|
123
|
+
| Slow initial load | Large bundle, many network requests | Check bundle size, code splitting |
|
|
124
|
+
|
|
125
|
+
**Backend:**
|
|
126
|
+
|
|
127
|
+
| Symptom | Likely Cause | Investigation |
|
|
128
|
+
|---------|-------------|---------------|
|
|
129
|
+
| Slow API responses | N+1 queries, missing indexes, unoptimized queries | Check database query log |
|
|
130
|
+
| Memory growth | Leaked references, unbounded caches, large payloads | Heap snapshot analysis |
|
|
131
|
+
| CPU spikes | Synchronous heavy computation, regex backtracking | CPU profiling |
|
|
132
|
+
| High latency | Missing caching, redundant computation, network hops | Trace requests through the stack |
|
|
133
|
+
|
|
134
|
+
### Step 3: Fix Common Anti-Patterns
|
|
135
|
+
|
|
136
|
+
#### N+1 Queries (Backend)
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
// BAD: N+1 — one query per task for the owner
|
|
140
|
+
const tasks = await db.tasks.findMany();
|
|
141
|
+
for (const task of tasks) {
|
|
142
|
+
task.owner = await db.users.findUnique({ where: { id: task.ownerId } });
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// GOOD: Single query with join/include
|
|
146
|
+
const tasks = await db.tasks.findMany({
|
|
147
|
+
include: { owner: true },
|
|
148
|
+
});
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
#### Unbounded Data Fetching
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
// BAD: Fetching all records
|
|
155
|
+
const allTasks = await db.tasks.findMany();
|
|
156
|
+
|
|
157
|
+
// GOOD: Paginated with limits
|
|
158
|
+
const tasks = await db.tasks.findMany({
|
|
159
|
+
take: 20,
|
|
160
|
+
skip: (page - 1) * 20,
|
|
161
|
+
orderBy: { createdAt: 'desc' },
|
|
162
|
+
});
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### Missing Image Optimization (Frontend)
|
|
166
|
+
|
|
167
|
+
```html
|
|
168
|
+
<!-- BAD: No dimensions, no format optimization -->
|
|
169
|
+
<img src="/hero.jpg" />
|
|
170
|
+
|
|
171
|
+
<!-- GOOD: Hero / LCP image — art direction + resolution switching, high priority -->
|
|
172
|
+
<!--
|
|
173
|
+
Two techniques combined:
|
|
174
|
+
- Art direction (media): different crop/composition per breakpoint
|
|
175
|
+
- Resolution switching (srcset + sizes): right file size per screen density
|
|
176
|
+
-->
|
|
177
|
+
<picture>
|
|
178
|
+
<!-- Mobile: portrait crop (8:10) -->
|
|
179
|
+
<source
|
|
180
|
+
media="(max-width: 767px)"
|
|
181
|
+
srcset="/hero-mobile-400.avif 400w, /hero-mobile-800.avif 800w"
|
|
182
|
+
sizes="100vw"
|
|
183
|
+
width="800"
|
|
184
|
+
height="1000"
|
|
185
|
+
type="image/avif"
|
|
186
|
+
/>
|
|
187
|
+
<source
|
|
188
|
+
media="(max-width: 767px)"
|
|
189
|
+
srcset="/hero-mobile-400.webp 400w, /hero-mobile-800.webp 800w"
|
|
190
|
+
sizes="100vw"
|
|
191
|
+
width="800"
|
|
192
|
+
height="1000"
|
|
193
|
+
type="image/webp"
|
|
194
|
+
/>
|
|
195
|
+
<!-- Desktop: landscape crop (2:1) -->
|
|
196
|
+
<source
|
|
197
|
+
srcset="/hero-800.avif 800w, /hero-1200.avif 1200w, /hero-1600.avif 1600w"
|
|
198
|
+
sizes="(max-width: 1200px) 100vw, 1200px"
|
|
199
|
+
width="1200"
|
|
200
|
+
height="600"
|
|
201
|
+
type="image/avif"
|
|
202
|
+
/>
|
|
203
|
+
<source
|
|
204
|
+
srcset="/hero-800.webp 800w, /hero-1200.webp 1200w, /hero-1600.webp 1600w"
|
|
205
|
+
sizes="(max-width: 1200px) 100vw, 1200px"
|
|
206
|
+
width="1200"
|
|
207
|
+
height="600"
|
|
208
|
+
type="image/webp"
|
|
209
|
+
/>
|
|
210
|
+
<img
|
|
211
|
+
src="/hero-desktop.jpg"
|
|
212
|
+
width="1200"
|
|
213
|
+
height="600"
|
|
214
|
+
fetchpriority="high"
|
|
215
|
+
alt="Hero image description"
|
|
216
|
+
/>
|
|
217
|
+
</picture>
|
|
218
|
+
|
|
219
|
+
<!-- GOOD: Below-the-fold image — lazy loaded + async decoding -->
|
|
220
|
+
<img
|
|
221
|
+
src="/content.webp"
|
|
222
|
+
width="800"
|
|
223
|
+
height="400"
|
|
224
|
+
loading="lazy"
|
|
225
|
+
decoding="async"
|
|
226
|
+
alt="Content image description"
|
|
227
|
+
/>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
#### Unnecessary Re-renders (React)
|
|
231
|
+
|
|
232
|
+
```tsx
|
|
233
|
+
// BAD: Creates new object on every render, causing children to re-render
|
|
234
|
+
function TaskList() {
|
|
235
|
+
return <TaskFilters options={{ sortBy: 'date', order: 'desc' }} />;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// GOOD: Stable reference
|
|
239
|
+
const DEFAULT_OPTIONS = { sortBy: 'date', order: 'desc' } as const;
|
|
240
|
+
function TaskList() {
|
|
241
|
+
return <TaskFilters options={DEFAULT_OPTIONS} />;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Use React.memo for expensive components
|
|
245
|
+
const TaskItem = React.memo(function TaskItem({ task }: Props) {
|
|
246
|
+
return <div>{/* expensive render */}</div>;
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
// Use useMemo for expensive computations
|
|
250
|
+
function TaskStats({ tasks }: Props) {
|
|
251
|
+
const stats = useMemo(() => calculateStats(tasks), [tasks]);
|
|
252
|
+
return <div>{stats.completed} / {stats.total}</div>;
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### Large Bundle Size
|
|
257
|
+
|
|
258
|
+
```typescript
|
|
259
|
+
// Modern bundlers (Vite, webpack 5+) handle named imports with tree-shaking automatically,
|
|
260
|
+
// provided the dependency ships ESM and is marked `sideEffects: false` in package.json.
|
|
261
|
+
// Profile before changing import styles — the real gains come from splitting and lazy loading.
|
|
262
|
+
|
|
263
|
+
// GOOD: Dynamic import for heavy, rarely-used features
|
|
264
|
+
const ChartLibrary = lazy(() => import('./ChartLibrary'));
|
|
265
|
+
|
|
266
|
+
// GOOD: Route-level code splitting wrapped in Suspense
|
|
267
|
+
const SettingsPage = lazy(() => import('./pages/Settings'));
|
|
268
|
+
|
|
269
|
+
function App() {
|
|
270
|
+
return (
|
|
271
|
+
<Suspense fallback={<Spinner />}>
|
|
272
|
+
<SettingsPage />
|
|
273
|
+
</Suspense>
|
|
274
|
+
);
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### Missing Caching (Backend)
|
|
279
|
+
|
|
280
|
+
```typescript
|
|
281
|
+
// Cache frequently-read, rarely-changed data
|
|
282
|
+
const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
283
|
+
let cachedConfig: AppConfig | null = null;
|
|
284
|
+
let cacheExpiry = 0;
|
|
285
|
+
|
|
286
|
+
async function getAppConfig(): Promise<AppConfig> {
|
|
287
|
+
if (cachedConfig && Date.now() < cacheExpiry) {
|
|
288
|
+
return cachedConfig;
|
|
289
|
+
}
|
|
290
|
+
cachedConfig = await db.config.findFirst();
|
|
291
|
+
cacheExpiry = Date.now() + CACHE_TTL;
|
|
292
|
+
return cachedConfig;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// HTTP caching headers for static assets
|
|
296
|
+
app.use('/static', express.static('public', {
|
|
297
|
+
maxAge: '1y', // Cache for 1 year
|
|
298
|
+
immutable: true, // Never revalidate (use content hashing in filenames)
|
|
299
|
+
}));
|
|
300
|
+
|
|
301
|
+
// Cache-Control for API responses
|
|
302
|
+
res.set('Cache-Control', 'public, max-age=300'); // 5 minutes
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## Performance Budget
|
|
306
|
+
|
|
307
|
+
Set budgets and enforce them:
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
JavaScript bundle: < 200KB gzipped (initial load)
|
|
311
|
+
CSS: < 50KB gzipped
|
|
312
|
+
Images: < 200KB per image (above the fold)
|
|
313
|
+
Fonts: < 100KB total
|
|
314
|
+
API response time: < 200ms (p95)
|
|
315
|
+
Time to Interactive: < 3.5s on 4G
|
|
316
|
+
Lighthouse Performance score: ≥ 90
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Enforce in CI:**
|
|
320
|
+
```bash
|
|
321
|
+
# Bundle size check
|
|
322
|
+
npx bundlesize --config bundlesize.config.json
|
|
323
|
+
|
|
324
|
+
# Lighthouse CI
|
|
325
|
+
npx lhci autorun
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Inline Performance Checklist
|
|
329
|
+
|
|
330
|
+
Use the workflow, bottleneck tables, budget, and verification checklist in this file as the source of truth. Do not reference external checklist files unless they exist in this skill directory.
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
## Common Rationalizations
|
|
334
|
+
|
|
335
|
+
| Rationalization | Reality |
|
|
336
|
+
|---|---|
|
|
337
|
+
| "We'll optimize later" | Performance debt compounds. Fix obvious anti-patterns now, defer micro-optimizations. |
|
|
338
|
+
| "It's fast on my machine" | Your machine isn't the user's. Profile on representative hardware and networks. |
|
|
339
|
+
| "This optimization is obvious" | If you didn't measure, you don't know. Profile first. |
|
|
340
|
+
| "Users won't notice this delay" | Do not assume impact; compare the named budget or representative measurement. |
|
|
341
|
+
| "The framework handles performance" | Frameworks prevent some issues but can't fix N+1 queries or oversized bundles. |
|
|
342
|
+
|
|
343
|
+
## Red Flags
|
|
344
|
+
|
|
345
|
+
- Optimization without profiling data to justify it
|
|
346
|
+
- Speculative performance rewrites when measurement is unavailable
|
|
347
|
+
- N+1 query patterns in data fetching
|
|
348
|
+
- List endpoints without pagination
|
|
349
|
+
- Images without dimensions, lazy loading, or responsive sizes
|
|
350
|
+
- Bundle size growing without review
|
|
351
|
+
- No performance monitoring in production
|
|
352
|
+
- `React.memo` and `useMemo` everywhere (overusing is as bad as underusing)
|
|
353
|
+
|
|
354
|
+
## Verification
|
|
355
|
+
|
|
356
|
+
For the selected measured performance claim, apply only relevant rows and let the canonical owner choose the final evidence:
|
|
357
|
+
|
|
358
|
+
- [ ] Before and after measurements exist (specific numbers)
|
|
359
|
+
- [ ] The specific bottleneck is identified and addressed
|
|
360
|
+
- [ ] Core Web Vitals are checked only when a Web Vitals claim is in scope
|
|
361
|
+
- [ ] Bundle size is checked only when the changed bundle path is in scope
|
|
362
|
+
- [ ] Query count is checked only when data-fetching/database behavior is in scope
|
|
363
|
+
- [ ] Performance budget passes in CI (if configured)
|
|
364
|
+
- [ ] Behavior-regression evidence is run only when the exact changed claim requires it
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-and-task-breakdown
|
|
3
|
+
description: Break a clear scope or accepted specification into ordered tasks/packages when the user explicitly asks for a plan, estimate, dependency order, or task breakdown; do not trigger for ordinary implementation, every multi-step task, speculative parallelism, review, or completion.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planning and Task Breakdown
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
When explicit planning intent selects this skill, decompose the accepted scope into coherent, dependency-ordered tasks or packages with acceptance criteria and claim-matched evidence targets. Ordinary implementation with a clear next step remains direct.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- The user asks for an implementation plan, task breakdown, estimate, dependency order, or package split.
|
|
15
|
+
- A formal DEFINE change has a dependency-ready tasks artifact to produce or revise.
|
|
16
|
+
- One accepted scope is too large to execute coherently without an explicit bounded package order.
|
|
17
|
+
|
|
18
|
+
**When NOT to use:** Ordinary implementation with a clear next step, a spec that already has usable tasks, generic discussion of possible parallelism, review, or verification.
|
|
19
|
+
|
|
20
|
+
## Canonical loop contract
|
|
21
|
+
|
|
22
|
+
This skill is one bounded ordinary-plan or DEFINE-tasks adapter. ROSE/`aili-delivery-flow` owns lifecycle state, artifact identity, approvals, progress, dispatch, and verification. Produce one dependency-ordered plan/task set and stop with `complete`, `need-user`, `need-evidence`, `material-delta`, `blocked`, or `Unverified`. Do not invoke spec, requirements, research, stress-test, implementation, TDD, review, or another process skill; return one named need to ROSE. No plan review/approval is added beyond material decisions and formal final `test-plan.md` acceptance. Canonical claim-matched verification overrides generic checklist commands.
|
|
23
|
+
|
|
24
|
+
## The Planning Process
|
|
25
|
+
|
|
26
|
+
### Step 1: Enter Plan Mode
|
|
27
|
+
|
|
28
|
+
Before writing any code, operate in read-only mode:
|
|
29
|
+
|
|
30
|
+
- Read the spec and relevant codebase sections
|
|
31
|
+
- Identify existing patterns and conventions
|
|
32
|
+
- Map dependencies between components
|
|
33
|
+
- Note risks and unknowns
|
|
34
|
+
|
|
35
|
+
**Do NOT write code during planning.** The output is a plan document, not implementation.
|
|
36
|
+
|
|
37
|
+
### Step 2: Identify the Dependency Graph
|
|
38
|
+
|
|
39
|
+
Map what depends on what:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Database schema
|
|
43
|
+
│
|
|
44
|
+
├── API models/types
|
|
45
|
+
│ │
|
|
46
|
+
│ ├── API endpoints
|
|
47
|
+
│ │ │
|
|
48
|
+
│ │ └── Frontend API client
|
|
49
|
+
│ │ │
|
|
50
|
+
│ │ └── UI components
|
|
51
|
+
│ │
|
|
52
|
+
│ └── Validation logic
|
|
53
|
+
│
|
|
54
|
+
└── Seed data / migrations
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Implementation order follows the dependency graph bottom-up: build foundations first.
|
|
58
|
+
|
|
59
|
+
### Step 3: Slice Vertically
|
|
60
|
+
|
|
61
|
+
Instead of building all the database, then all the API, then all the UI — build one complete feature path at a time:
|
|
62
|
+
|
|
63
|
+
**Bad (horizontal slicing):**
|
|
64
|
+
```
|
|
65
|
+
Task 1: Build entire database schema
|
|
66
|
+
Task 2: Build all API endpoints
|
|
67
|
+
Task 3: Build all UI components
|
|
68
|
+
Task 4: Connect everything
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Good (vertical slicing):**
|
|
72
|
+
```
|
|
73
|
+
Task 1: User can create an account (schema + API + UI for registration)
|
|
74
|
+
Task 2: User can log in (auth schema + API + UI for login)
|
|
75
|
+
Task 3: User can create a task (task schema + API + UI for creation)
|
|
76
|
+
Task 4: User can view task list (query + API + UI for list view)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Each vertical slice delivers working, testable functionality.
|
|
80
|
+
|
|
81
|
+
### Step 4: Write Tasks
|
|
82
|
+
|
|
83
|
+
Each task follows this structure:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## Task [N]: [Short descriptive title]
|
|
87
|
+
|
|
88
|
+
**Description:** One paragraph explaining what this task accomplishes.
|
|
89
|
+
|
|
90
|
+
**Acceptance criteria:**
|
|
91
|
+
- [ ] [Specific, testable condition]
|
|
92
|
+
- [ ] [Specific, testable condition]
|
|
93
|
+
|
|
94
|
+
**Verification:**
|
|
95
|
+
- [ ] Evidence: [smallest test, build, inspection, or manual observation required by the affected claim; omit or mark N/A when no package-local check is needed]
|
|
96
|
+
|
|
97
|
+
**Dependencies:** [Task numbers this depends on, or "None"]
|
|
98
|
+
|
|
99
|
+
**Files likely touched:**
|
|
100
|
+
- `src/path/to/file.ts`
|
|
101
|
+
- `tests/path/to/test.ts`
|
|
102
|
+
|
|
103
|
+
**Scope boundary:** [coherent behavior/dependency, owner, risk, reversibility, and likely files]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Prototype Before Committing to a Design
|
|
107
|
+
|
|
108
|
+
Treat a throwaway prototype as a separately selected implementation action, not an automatic planning step. Use it only when explicitly in scope and it answers a concrete design question.
|
|
109
|
+
|
|
110
|
+
Good prototype questions:
|
|
111
|
+
- Does this state machine feel right?
|
|
112
|
+
- Does this data model support the edge cases?
|
|
113
|
+
- Which UI direction is clearer?
|
|
114
|
+
- Can this integration path work with the current constraints?
|
|
115
|
+
|
|
116
|
+
Prototype rules:
|
|
117
|
+
- Mark prototype code clearly as throwaway.
|
|
118
|
+
- Keep it close to the relevant module/page, but visibly non-production.
|
|
119
|
+
- Make it runnable with one command.
|
|
120
|
+
- Avoid persistence unless the question is specifically about persistence.
|
|
121
|
+
- Skip polish, broad abstractions, and production hardening.
|
|
122
|
+
- Surface state clearly after each interaction.
|
|
123
|
+
- Delete it or absorb the validated decision into real code when done.
|
|
124
|
+
- Capture the answer in a commit message, ADR, issue, or nearby note before deleting.
|
|
125
|
+
|
|
126
|
+
### Issue-Shaped Work Packages
|
|
127
|
+
|
|
128
|
+
When turning a plan into executable work, structure each unit like an issue even if no issue tracker is used.
|
|
129
|
+
|
|
130
|
+
Each work package should include:
|
|
131
|
+
- Title
|
|
132
|
+
- Type: `AFK` or `HITL`
|
|
133
|
+
- What to build
|
|
134
|
+
- Acceptance criteria
|
|
135
|
+
- Verification evidence or explicit N/A
|
|
136
|
+
- Blocked by
|
|
137
|
+
- User stories or requirements covered
|
|
138
|
+
- Likely files
|
|
139
|
+
- Explicit non-goals
|
|
140
|
+
|
|
141
|
+
Prefer AFK slices when safe. Mark HITL when the slice requires product judgment, architecture choice, design review, credentials, environment access, or risky approval.
|
|
142
|
+
|
|
143
|
+
Do not publish, close, or modify external issues unless the user explicitly asks.
|
|
144
|
+
|
|
145
|
+
### Step 5: Order and Checkpoint
|
|
146
|
+
|
|
147
|
+
Arrange tasks so that:
|
|
148
|
+
|
|
149
|
+
1. Dependencies are satisfied (build foundation first)
|
|
150
|
+
2. Each task leaves the system in a working state
|
|
151
|
+
3. Verification points are attached only where a claim or dependency needs evidence
|
|
152
|
+
4. High-risk tasks are early (fail fast)
|
|
153
|
+
|
|
154
|
+
Add explicit checkpoints:
|
|
155
|
+
|
|
156
|
+
```markdown
|
|
157
|
+
## Checkpoint: After Tasks 1-3
|
|
158
|
+
- [ ] The canonical owner selects the smallest check needed by the affected claim
|
|
159
|
+
- [ ] Any material decision or exact risky operation is named before dependent work
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Plan Stress Test
|
|
163
|
+
|
|
164
|
+
Before finalizing, run this direct plan consistency checklist. Use a separate stress-test only on explicit user intent or one named material loophole selected by ROSE.
|
|
165
|
+
|
|
166
|
+
Check whether:
|
|
167
|
+
|
|
168
|
+
- any task is still too large
|
|
169
|
+
- any task combines independent outcomes that need separate ownership, ordering, or rollback
|
|
170
|
+
- dependencies are missing or ordered incorrectly
|
|
171
|
+
- shared mutable state requires sequential execution
|
|
172
|
+
- parallel work packages would edit overlapping files
|
|
173
|
+
- verification steps are too vague
|
|
174
|
+
- likely files are missing for risky tasks
|
|
175
|
+
- acceptance criteria are not testable
|
|
176
|
+
- user judgment is required and should be marked `HITL`
|
|
177
|
+
- external credentials, environment access, release approvals, or migrations are required
|
|
178
|
+
|
|
179
|
+
Fix the plan when evidence supports the fix. Otherwise mark the item as `Open Question` or `Unverified`.
|
|
180
|
+
|
|
181
|
+
### 🔴 CHECKPOINT / 🛑 STOP: Dispatch and Parallel Work Gate
|
|
182
|
+
|
|
183
|
+
Before assigning work to another agent, session, issue, or parallel lane, confirm:
|
|
184
|
+
|
|
185
|
+
- each package has non-overlapping files or an explicit sequential dependency
|
|
186
|
+
- shared contracts, schemas, APIs, and acceptance criteria are settled first
|
|
187
|
+
- each package has a single owner, expected evidence, and blocked-by field; package boundaries do not mandate a command
|
|
188
|
+
- risky work is marked `HITL` when it needs product, architecture, credential, migration, or release approval
|
|
189
|
+
|
|
190
|
+
If any item is missing, stop and revise the plan; do not dispatch ambiguous or overlapping packages.
|
|
191
|
+
|
|
192
|
+
### Oversized or Blocked Task Fallbacks
|
|
193
|
+
|
|
194
|
+
| Trigger | First action | If still unresolved |
|
|
195
|
+
|---|---|---|
|
|
196
|
+
| Task combines independent behaviors or subsystems | Split by vertical user-visible slice or dependency layer | Mark unresolved scope as `Open Question` and return material decisions to ROSE |
|
|
197
|
+
| Acceptance criteria mix unrelated outcomes | Separate behavior, edge cases, and evidence by coherent ownership/dependency | Mark unclear criteria as `Open Question` |
|
|
198
|
+
| Likely files overlap across parallel packages | Make the packages sequential or define a shared contract task first | Do not parallelize |
|
|
199
|
+
| Task needs credentials, schema migration, release approval, or destructive action | Mark `HITL` and name the required approval/evidence | Block implementation until the human gate is cleared |
|
|
200
|
+
|
|
201
|
+
## Task Boundary Guidelines
|
|
202
|
+
|
|
203
|
+
Keep a task intact when its files and actions are necessary for one coherent accepted behavior and can be verified through one clear evidence path. Split when independent outcomes, owners, risky approvals, rollback boundaries, or dependency order would otherwise be hidden.
|
|
204
|
+
|
|
205
|
+
File count, estimated elapsed time, title wording, or bullet count may help describe a task but never acts as a gate by itself.
|
|
206
|
+
|
|
207
|
+
## Plan Document Template
|
|
208
|
+
|
|
209
|
+
```markdown
|
|
210
|
+
# Implementation Plan: [Feature/Project Name]
|
|
211
|
+
|
|
212
|
+
## Overview
|
|
213
|
+
[One paragraph summary of what we're building]
|
|
214
|
+
|
|
215
|
+
## Architecture Decisions
|
|
216
|
+
- [Key decision 1 and rationale]
|
|
217
|
+
- [Key decision 2 and rationale]
|
|
218
|
+
|
|
219
|
+
## Task List
|
|
220
|
+
|
|
221
|
+
### Phase 1: Foundation
|
|
222
|
+
- [ ] Task 1: ...
|
|
223
|
+
- [ ] Task 2: ...
|
|
224
|
+
|
|
225
|
+
### Checkpoint: Foundation
|
|
226
|
+
- [ ] Savepoint records completed scope, unresolved dependencies, and next task
|
|
227
|
+
|
|
228
|
+
### Phase 2: Core Features
|
|
229
|
+
- [ ] Task 3: ...
|
|
230
|
+
- [ ] Task 4: ...
|
|
231
|
+
|
|
232
|
+
### Checkpoint: Core Features
|
|
233
|
+
- [ ] End-to-end flow works
|
|
234
|
+
|
|
235
|
+
### Phase 3: Polish
|
|
236
|
+
- [ ] Task 5: ...
|
|
237
|
+
- [ ] Task 6: ...
|
|
238
|
+
|
|
239
|
+
### Checkpoint: Complete
|
|
240
|
+
- [ ] All acceptance criteria met
|
|
241
|
+
- [ ] Canonical owner has one claim-matched verification path
|
|
242
|
+
|
|
243
|
+
## Risks and Mitigations
|
|
244
|
+
| Risk | Impact | Mitigation |
|
|
245
|
+
|------|--------|------------|
|
|
246
|
+
| [Risk] | [High/Med/Low] | [Strategy] |
|
|
247
|
+
|
|
248
|
+
## Open Questions
|
|
249
|
+
- [Question needing human input]
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Parallelization Opportunities
|
|
253
|
+
|
|
254
|
+
Include this section only when the user requests parallel work or at least two independent units have a clear wall-clock/context benefit. Otherwise omit it and keep the plan direct/serial.
|
|
255
|
+
|
|
256
|
+
- **Safe to parallelize:** Independent feature slices, tests for already-implemented features, documentation
|
|
257
|
+
- **Must be sequential:** Database migrations, shared state changes, dependency chains
|
|
258
|
+
- **Needs coordination:** Features that share an API contract (define the contract first, then parallelize)
|
|
259
|
+
- **Do not parallelize:** Packages with overlapping edit paths, unsettled public contracts, shared mutable state, or missing verification commands
|
|
260
|
+
|
|
261
|
+
## Common Rationalizations
|
|
262
|
+
|
|
263
|
+
| Rationalization | Reality |
|
|
264
|
+
|---|---|
|
|
265
|
+
| "I'll figure it out as I go" | Once planning is explicitly selected, record the dependency and risk decisions needed for execution. |
|
|
266
|
+
| "The tasks are obvious" | When planning was explicitly requested, record only the dependency/order details that improve execution; do not manufacture ceremony. |
|
|
267
|
+
| "Planning is overhead" | Use planning only when requested or selected for a concrete coordination need; otherwise keep ordinary implementation direct. |
|
|
268
|
+
| "I can hold it all in my head" | Context windows are finite. Written plans survive session boundaries and compaction. |
|
|
269
|
+
|
|
270
|
+
## Red Flags
|
|
271
|
+
|
|
272
|
+
- Forcing a written task list onto clear ordinary implementation
|
|
273
|
+
- Tasks that say "implement the feature" without acceptance criteria
|
|
274
|
+
- No claim-matched evidence target where a task's acceptance needs one
|
|
275
|
+
- Independent outcomes hidden in one package without an ownership or dependency reason
|
|
276
|
+
- No savepoint where a long/resumable plan needs one
|
|
277
|
+
- Dependency order isn't considered
|
|
278
|
+
- Parallel dispatch before overlap, ownership, and verification are explicit
|
|
279
|
+
- Blocked or oversized tasks passed to implementation without a fallback decision
|
|
280
|
+
|
|
281
|
+
## Verification
|
|
282
|
+
|
|
283
|
+
Before starting implementation, confirm:
|
|
284
|
+
|
|
285
|
+
- [ ] Every task has acceptance criteria
|
|
286
|
+
- [ ] Each task names only the evidence required by its affected claim, or explicitly needs no package-local check
|
|
287
|
+
- [ ] Task dependencies are identified and ordered correctly
|
|
288
|
+
- [ ] Task boundaries follow dependencies and coherent behavior rather than an arbitrary file limit
|
|
289
|
+
- [ ] Evidence points exist only where the affected claim needs them
|
|
290
|
+
- [ ] Material decisions are resolved and formal final `test-plan.md` acceptance remains owned by the lifecycle
|