@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,278 @@
|
|
|
1
|
+
# Release & Acceptance Checklist
|
|
2
|
+
|
|
3
|
+
6-gate release checklist for backend and full-stack applications. Prevents "it works on my machine" and "we forgot to check X" failures.
|
|
4
|
+
|
|
5
|
+
**Iron Law: NO RELEASE WITHOUT ALL GATES PASSING.**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Release Gates Overview
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Feature Complete
|
|
13
|
+
↓
|
|
14
|
+
Gate 1: Functional Acceptance → Does it do what it should?
|
|
15
|
+
↓
|
|
16
|
+
Gate 2: Non-Functional Acceptance → Is it fast, reliable, observable?
|
|
17
|
+
↓
|
|
18
|
+
Gate 3: Security Review → Is it safe?
|
|
19
|
+
↓
|
|
20
|
+
Gate 4: Deployment Readiness → Can we deploy and rollback safely?
|
|
21
|
+
↓
|
|
22
|
+
Gate 5: Release Execution → Deploy with canary + monitoring
|
|
23
|
+
↓
|
|
24
|
+
Gate 6: Post-Release Validation → Did it actually work in production?
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Gate 1: Functional Acceptance
|
|
30
|
+
|
|
31
|
+
**Question: Does it do what the requirements say?**
|
|
32
|
+
|
|
33
|
+
- [ ] All acceptance criteria from ticket/PRD have passing tests
|
|
34
|
+
- [ ] Happy path works end-to-end
|
|
35
|
+
- [ ] Edge cases tested (empty inputs, max lengths, Unicode)
|
|
36
|
+
- [ ] Error cases tested (invalid input, not found, timeout)
|
|
37
|
+
- [ ] Data integrity verified (CRUD cycle produces correct state)
|
|
38
|
+
- [ ] Backward compatibility confirmed (existing clients not broken)
|
|
39
|
+
- [ ] API contract matches OpenAPI spec
|
|
40
|
+
- [ ] Idempotency verified (retries don't create duplicates)
|
|
41
|
+
|
|
42
|
+
### Evidence Template
|
|
43
|
+
|
|
44
|
+
| Requirement | Test | Status | Notes |
|
|
45
|
+
|-------------|------|--------|-------|
|
|
46
|
+
| User can create order | `orders.api.test:creates order` | ✅ PASS | |
|
|
47
|
+
| Empty cart → error | `orders.api.test:rejects empty` | ✅ PASS | |
|
|
48
|
+
| Payment failure handled | `payments.test:handles decline` | ✅ PASS | |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Gate 2: Non-Functional Acceptance
|
|
53
|
+
|
|
54
|
+
**Question: Is it fast, reliable, and observable?**
|
|
55
|
+
|
|
56
|
+
### Performance
|
|
57
|
+
|
|
58
|
+
- [ ] Response time within budget (p95 < ___ms) — measured, not assumed
|
|
59
|
+
- [ ] No N+1 queries (checked with query logging)
|
|
60
|
+
- [ ] New queries use indexes (`EXPLAIN ANALYZE`)
|
|
61
|
+
- [ ] Pagination works on large datasets
|
|
62
|
+
- [ ] Caching effective (hit rate > 80%)
|
|
63
|
+
- [ ] Connection pool healthy under load
|
|
64
|
+
|
|
65
|
+
### Reliability
|
|
66
|
+
|
|
67
|
+
- [ ] Graceful degradation when dependencies fail (circuit breaker)
|
|
68
|
+
- [ ] Retry logic works for transient failures
|
|
69
|
+
- [ ] All external calls have timeouts
|
|
70
|
+
- [ ] Rate limiting returns 429 correctly
|
|
71
|
+
- [ ] Health check endpoints verified (`/health`, `/ready`)
|
|
72
|
+
|
|
73
|
+
### Observability
|
|
74
|
+
|
|
75
|
+
- [ ] Structured logging with request ID (not `console.log`)
|
|
76
|
+
- [ ] Metrics exposed (request count, latency, error rate)
|
|
77
|
+
- [ ] Alerts configured (error spike, latency spike)
|
|
78
|
+
- [ ] Request tracing works end-to-end
|
|
79
|
+
- [ ] Dashboard updated for new feature
|
|
80
|
+
|
|
81
|
+
### Evidence
|
|
82
|
+
|
|
83
|
+
| Metric | Target | Actual | Status |
|
|
84
|
+
|--------|--------|--------|--------|
|
|
85
|
+
| p95 response | < 500ms | ___ms | ✅/❌ |
|
|
86
|
+
| p99 response | < 1000ms | ___ms | ✅/❌ |
|
|
87
|
+
| Error rate (load) | < 0.1% | ___% | ✅/❌ |
|
|
88
|
+
| Throughput | > ___ RPS | ___ RPS | ✅/❌ |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Gate 3: Security Review
|
|
93
|
+
|
|
94
|
+
**Question: Does this introduce vulnerabilities?**
|
|
95
|
+
|
|
96
|
+
### Input & Output
|
|
97
|
+
|
|
98
|
+
- [ ] All input validated server-side (never trust client)
|
|
99
|
+
- [ ] SQL injection prevented (parameterized queries only)
|
|
100
|
+
- [ ] XSS prevented (output encoding)
|
|
101
|
+
- [ ] File upload validated (type, size, name sanitized)
|
|
102
|
+
- [ ] Rate limiting on sensitive endpoints (login, reset, APIs)
|
|
103
|
+
|
|
104
|
+
### Auth & Data
|
|
105
|
+
|
|
106
|
+
- [ ] Protected endpoints require valid credentials
|
|
107
|
+
- [ ] Users can only access their own resources
|
|
108
|
+
- [ ] Admin routes require admin role
|
|
109
|
+
- [ ] Tokens expire (short-lived access + refresh)
|
|
110
|
+
- [ ] Passwords hashed (bcrypt/argon2, not MD5/SHA)
|
|
111
|
+
- [ ] Sensitive data not logged (passwords, tokens, PII)
|
|
112
|
+
- [ ] Secrets in env vars (not hardcoded)
|
|
113
|
+
- [ ] Error messages don't leak internals
|
|
114
|
+
|
|
115
|
+
### Dependencies
|
|
116
|
+
|
|
117
|
+
- [ ] No known vulnerabilities (`npm audit` / `pip audit` / `govulncheck`)
|
|
118
|
+
- [ ] Dependencies pinned in lockfile
|
|
119
|
+
- [ ] Unused dependencies removed
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Gate 4: Deployment Readiness
|
|
124
|
+
|
|
125
|
+
**Question: Can we deploy safely and roll back if needed?**
|
|
126
|
+
|
|
127
|
+
### Code
|
|
128
|
+
|
|
129
|
+
- [ ] All tests pass in CI (not "it passed locally")
|
|
130
|
+
- [ ] Linter clean, build succeeds
|
|
131
|
+
- [ ] Code reviewed and approved
|
|
132
|
+
- [ ] No unresolved TODO/FIXME/HACK
|
|
133
|
+
|
|
134
|
+
### Database
|
|
135
|
+
|
|
136
|
+
- [ ] Migration tested on staging with production-like data
|
|
137
|
+
- [ ] Down migration works (tested!)
|
|
138
|
+
- [ ] Migration is non-destructive (additive only)
|
|
139
|
+
- [ ] Migration timing estimated on production data size
|
|
140
|
+
- [ ] Backfill plan documented (if needed)
|
|
141
|
+
|
|
142
|
+
### Configuration
|
|
143
|
+
|
|
144
|
+
- [ ] New env vars documented in `.env.example`
|
|
145
|
+
- [ ] Env vars set in staging and verified
|
|
146
|
+
- [ ] Env vars set in production
|
|
147
|
+
- [ ] Feature flags configured (if applicable)
|
|
148
|
+
|
|
149
|
+
### Rollback Plan Template
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
## Rollback Plan: [Feature]
|
|
153
|
+
|
|
154
|
+
### When to rollback
|
|
155
|
+
- Error rate > 1% sustained 5 minutes
|
|
156
|
+
- p99 latency > 3000ms sustained 10 minutes
|
|
157
|
+
- Critical business function broken
|
|
158
|
+
|
|
159
|
+
### Steps
|
|
160
|
+
1. Revert deploy: [command]
|
|
161
|
+
2. Rollback migration (if applied): [command]
|
|
162
|
+
3. Invalidate cache: [command]
|
|
163
|
+
4. Notify team: #incidents channel
|
|
164
|
+
5. Verify rollback: [verification steps]
|
|
165
|
+
|
|
166
|
+
### Estimated time: [X minutes]
|
|
167
|
+
### Data recovery: [procedure if data was modified]
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Gate 5: Release Execution
|
|
173
|
+
|
|
174
|
+
### Deployment Sequence
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
1. 📢 ANNOUNCE in release channel
|
|
178
|
+
|
|
179
|
+
2. 🗄️ DATABASE — Apply migration
|
|
180
|
+
- Run migration
|
|
181
|
+
- Verify completion
|
|
182
|
+
- Check data integrity
|
|
183
|
+
|
|
184
|
+
3. 🚀 DEPLOY — Roll out code
|
|
185
|
+
- Canary first (10% traffic)
|
|
186
|
+
- Monitor 5 minutes
|
|
187
|
+
- If OK → 50% → monitor → 100%
|
|
188
|
+
- If NOT OK → STOP immediately
|
|
189
|
+
|
|
190
|
+
4. 🔍 SMOKE TEST
|
|
191
|
+
- Health check → 200
|
|
192
|
+
- Login works
|
|
193
|
+
- Core operation works
|
|
194
|
+
- No error spikes
|
|
195
|
+
|
|
196
|
+
5. ✅ ANNOUNCE "Release complete. Monitoring 30 min."
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Canary Decision Table
|
|
200
|
+
|
|
201
|
+
| Metric | Baseline | Canary OK | STOP | ROLLBACK |
|
|
202
|
+
|--------|----------|-----------|------|----------|
|
|
203
|
+
| Error rate | 0.05% | < 0.1% | 0.5% | > 1% |
|
|
204
|
+
| p95 latency | 300ms | < 500ms | 700ms | > 1000ms |
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Gate 6: Post-Release Validation
|
|
209
|
+
|
|
210
|
+
### Immediate (0-30 min)
|
|
211
|
+
|
|
212
|
+
- [ ] Health checks green on all instances
|
|
213
|
+
- [ ] Error rate within normal range
|
|
214
|
+
- [ ] Latency normal (p95, p99)
|
|
215
|
+
- [ ] Core user journey manually tested
|
|
216
|
+
- [ ] Logs clean — no unexpected errors
|
|
217
|
+
- [ ] Alerts silent
|
|
218
|
+
|
|
219
|
+
### Short-term (1-24 hours)
|
|
220
|
+
|
|
221
|
+
- [ ] No customer complaints
|
|
222
|
+
- [ ] Business metrics stable (conversion, revenue, signups)
|
|
223
|
+
- [ ] Memory/CPU stable (no creeping usage)
|
|
224
|
+
- [ ] Queue backlogs clear
|
|
225
|
+
- [ ] Database performance stable
|
|
226
|
+
|
|
227
|
+
### Post-Release Report Template
|
|
228
|
+
|
|
229
|
+
```markdown
|
|
230
|
+
## Release Report: [Feature]
|
|
231
|
+
- Deployed: [timestamp] by @[engineer]
|
|
232
|
+
- Duration: [minutes]
|
|
233
|
+
|
|
234
|
+
| Check | Status | Notes |
|
|
235
|
+
|-------|--------|-------|
|
|
236
|
+
| Health checks | ✅ | All healthy |
|
|
237
|
+
| Error rate | ✅ | 0.03% (baseline: 0.05%) |
|
|
238
|
+
| p95 latency | ✅ | 310ms (baseline: 300ms) |
|
|
239
|
+
| Core flow | ✅ | Order creation verified |
|
|
240
|
+
|
|
241
|
+
Issues found: None / [details]
|
|
242
|
+
Rollback used: No / Yes: [reason]
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Release Readiness Score
|
|
248
|
+
|
|
249
|
+
Score each gate **0-2**: (0 = not checked, 1 = partially, 2 = fully verified with evidence)
|
|
250
|
+
|
|
251
|
+
| Gate | Score |
|
|
252
|
+
|------|-------|
|
|
253
|
+
| 1. Functional Acceptance | /2 |
|
|
254
|
+
| 2. Non-Functional Acceptance | /2 |
|
|
255
|
+
| 3. Security Review | /2 |
|
|
256
|
+
| 4. Deployment Readiness | /2 |
|
|
257
|
+
| 5. Release Execution Plan | /2 |
|
|
258
|
+
| 6. Post-Release Validation Plan | /2 |
|
|
259
|
+
| **Total** | **/12** |
|
|
260
|
+
|
|
261
|
+
**Decision:**
|
|
262
|
+
- **12/12** → Ship it ✅
|
|
263
|
+
- **10-11** → Ship with documented exceptions + owner assigned
|
|
264
|
+
- **< 10** → Do NOT release. Fix gaps first.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Common Rationalizations
|
|
269
|
+
|
|
270
|
+
| ❌ Excuse | ✅ Reality |
|
|
271
|
+
|----------|-----------|
|
|
272
|
+
| "It's a small change" | Small changes cause outages every day |
|
|
273
|
+
| "We tested locally" | Local ≠ production |
|
|
274
|
+
| "We'll fix it if it breaks" | You'll fix it at 3 AM. Prevent now. |
|
|
275
|
+
| "Deadline is today" | Broken code costs more than late code |
|
|
276
|
+
| "CI passed" | CI doesn't check everything. Run the checklist. |
|
|
277
|
+
| "We can always rollback" | Only if you planned and tested rollback |
|
|
278
|
+
| "We did this last time fine" | Survivorship bias. Checklist every time. |
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Technology Selection Framework
|
|
2
|
+
|
|
3
|
+
Structured decision framework for backend and full-stack technology choices. Prevents analysis paralysis while ensuring rigorous evaluation.
|
|
4
|
+
|
|
5
|
+
**Iron Law: NO TECHNOLOGY CHOICE WITHOUT EXPLICIT TRADE-OFF ANALYSIS.**
|
|
6
|
+
|
|
7
|
+
"I like it" and "it's trending" are not engineering arguments.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Phase 1: Requirements Before Technology
|
|
12
|
+
|
|
13
|
+
### Non-Functional Requirements (Quantify!)
|
|
14
|
+
|
|
15
|
+
| Dimension | Question | Bad Answer | Good Answer |
|
|
16
|
+
|-----------|----------|-----------|-------------|
|
|
17
|
+
| Scale | How many concurrent users? | "Lots" | "1K concurrent, 500 RPS peak" |
|
|
18
|
+
| Latency | Acceptable p99 response time? | "Fast" | "< 200ms API, < 2s reports" |
|
|
19
|
+
| Availability | Required uptime? | "Always up" | "99.9% (8.7h downtime/year)" |
|
|
20
|
+
| Data volume | Expected storage growth? | "A lot" | "100GB/year, 10M rows" |
|
|
21
|
+
| Consistency | Strong vs eventual? | "Consistent" | "Strong for payments, eventual for feeds" |
|
|
22
|
+
| Compliance | Regulatory? | "Some" | "GDPR data residency EU, SOC 2 Type II" |
|
|
23
|
+
|
|
24
|
+
### Team Constraints
|
|
25
|
+
|
|
26
|
+
- Team size and seniority level
|
|
27
|
+
- What the team already knows well
|
|
28
|
+
- Can you hire for this stack? (check job market)
|
|
29
|
+
- Timeline pressure (days vs months to production)
|
|
30
|
+
- Budget for licenses, infrastructure, training
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Phase 2: Evaluation Matrix
|
|
35
|
+
|
|
36
|
+
Score each option 1-5 on weighted criteria:
|
|
37
|
+
|
|
38
|
+
| Criterion | Weight | Option A | Option B | Option C |
|
|
39
|
+
|-----------|--------|----------|----------|----------|
|
|
40
|
+
| Meets functional requirements | 5× | _ | _ | _ |
|
|
41
|
+
| Meets non-functional requirements | 5× | _ | _ | _ |
|
|
42
|
+
| Team expertise / learning curve | 4× | _ | _ | _ |
|
|
43
|
+
| Ecosystem maturity (libs, tools) | 3× | _ | _ | _ |
|
|
44
|
+
| Community & long-term viability | 3× | _ | _ | _ |
|
|
45
|
+
| Operational complexity | 3× | _ | _ | _ |
|
|
46
|
+
| Hiring pool availability | 2× | _ | _ | _ |
|
|
47
|
+
| Cost (license + infra + training) | 2× | _ | _ | _ |
|
|
48
|
+
| **Weighted Total** | | _ | _ | _ |
|
|
49
|
+
|
|
50
|
+
**Rules:**
|
|
51
|
+
- Any option scoring **1 on a 5× criterion** → automatically disqualified
|
|
52
|
+
- Options within **10%** of each other → choose what team knows best
|
|
53
|
+
- Options within **15%** → run a **time-boxed PoC** (2-5 days max)
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Phase 3: Decision Trees
|
|
58
|
+
|
|
59
|
+
### Backend Language / Framework
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
What type of project?
|
|
63
|
+
│
|
|
64
|
+
├─ REST/GraphQL API, rapid development
|
|
65
|
+
│ ├─ Team knows TypeScript → Node.js
|
|
66
|
+
│ │ ├─ Full-featured, enterprise patterns → NestJS
|
|
67
|
+
│ │ ├─ Lightweight, flexible → Fastify / Hono / Express
|
|
68
|
+
│ │ └─ Full-stack with React → Next.js API routes
|
|
69
|
+
│ ├─ Team knows Python
|
|
70
|
+
│ │ ├─ High-perf async API → FastAPI
|
|
71
|
+
│ │ ├─ Full-stack, admin-heavy → Django
|
|
72
|
+
│ │ └─ Lightweight → Flask / Litestar
|
|
73
|
+
│ └─ Team knows Java/Kotlin
|
|
74
|
+
│ ├─ Enterprise, large team → Spring Boot
|
|
75
|
+
│ └─ Lightweight, fast startup → Quarkus / Ktor
|
|
76
|
+
│
|
|
77
|
+
├─ High concurrency, systems-level
|
|
78
|
+
│ ├─ Microservices, network → Go
|
|
79
|
+
│ ├─ Extreme perf, safety → Rust (Axum / Actix)
|
|
80
|
+
│ └─ Fault tolerance → Elixir (Phoenix)
|
|
81
|
+
│
|
|
82
|
+
├─ Real-time (WebSocket, streaming)
|
|
83
|
+
│ ├─ Node.js ecosystem → Socket.io / ws
|
|
84
|
+
│ ├─ Scalable pub/sub → Elixir Phoenix
|
|
85
|
+
│ └─ Low-latency → Go / Rust
|
|
86
|
+
│
|
|
87
|
+
└─ ML / data-intensive
|
|
88
|
+
└─ Python (FastAPI + ML libs)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Database
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
What data model?
|
|
95
|
+
│
|
|
96
|
+
├─ Structured, relational, ACID
|
|
97
|
+
│ ├─ General purpose → PostgreSQL ← DEFAULT CHOICE
|
|
98
|
+
│ ├─ Read-heavy, MySQL ecosystem → MySQL / MariaDB
|
|
99
|
+
│ └─ Embedded / serverless edge → SQLite / Turso / D1
|
|
100
|
+
│
|
|
101
|
+
├─ Semi-structured, flexible schema
|
|
102
|
+
│ ├─ Document-oriented → MongoDB
|
|
103
|
+
│ ├─ Serverless document → DynamoDB / Firestore
|
|
104
|
+
│ └─ Search-heavy → Elasticsearch / OpenSearch
|
|
105
|
+
│
|
|
106
|
+
├─ Key-value / cache
|
|
107
|
+
│ ├─ In-memory + data structures → Redis / Valkey
|
|
108
|
+
│ └─ Planet-scale KV → DynamoDB / Cassandra
|
|
109
|
+
│
|
|
110
|
+
├─ Time-series → TimescaleDB / ClickHouse / InfluxDB
|
|
111
|
+
├─ Graph → Neo4j / Apache AGE (Postgres extension)
|
|
112
|
+
└─ Vector (AI embeddings) → pgvector / Pinecone / Qdrant
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Default:** Start with PostgreSQL. It handles 80% of use cases.
|
|
116
|
+
|
|
117
|
+
### Caching Strategy
|
|
118
|
+
|
|
119
|
+
| Pattern | Technology | When |
|
|
120
|
+
|---------|-----------|------|
|
|
121
|
+
| Application cache | Redis / Valkey | Sessions, frequent reads, rate limiting |
|
|
122
|
+
| HTTP cache | CDN (Cloudflare/Vercel) | Static assets, public API responses |
|
|
123
|
+
| Query cache | Materialized views | Complex aggregations, dashboards |
|
|
124
|
+
| In-process cache | LRU (in-memory) | Config, small lookup tables |
|
|
125
|
+
| Edge cache | Cloudflare KV / Vercel KV | Global low-latency reads |
|
|
126
|
+
|
|
127
|
+
### Message Queue / Event Streaming
|
|
128
|
+
|
|
129
|
+
| Pattern | Technology | When |
|
|
130
|
+
|---------|-----------|------|
|
|
131
|
+
| Task queue (background jobs) | BullMQ / Celery / SQS | Email, exports, payments |
|
|
132
|
+
| Event streaming (replay, audit) | Kafka / Redpanda | Event sourcing, real-time pipelines |
|
|
133
|
+
| Lightweight pub/sub | Redis Streams / NATS | Simple notifications, broadcasting |
|
|
134
|
+
| Request-reply (sync over async) | NATS / RabbitMQ RPC | Internal service calls |
|
|
135
|
+
|
|
136
|
+
### Hosting / Deployment
|
|
137
|
+
|
|
138
|
+
| Model | Technology | When |
|
|
139
|
+
|-------|-----------|------|
|
|
140
|
+
| Serverless (auto-scale) | Vercel / Cloudflare Workers / Lambda | Variable traffic, pay-per-use |
|
|
141
|
+
| Container (predictable) | Cloud Run / Render / Railway / Fly.io | Steady traffic, simple ops |
|
|
142
|
+
| Kubernetes (large scale) | EKS / GKE / AKS | 10+ services, team has K8s expertise |
|
|
143
|
+
| VPS (full control) | DigitalOcean / Hetzner / EC2 | Predictable workload, cost-sensitive |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Phase 4: Decision Documentation
|
|
148
|
+
|
|
149
|
+
### ADR (Architecture Decision Record) Template
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
# ADR-{NNN}: {Title}
|
|
153
|
+
|
|
154
|
+
## Status: Proposed | Accepted | Deprecated | Superseded by ADR-{NNN}
|
|
155
|
+
|
|
156
|
+
## Context
|
|
157
|
+
What problem are we solving? What forces are at play?
|
|
158
|
+
|
|
159
|
+
## Decision
|
|
160
|
+
What did we choose and why?
|
|
161
|
+
|
|
162
|
+
## Evaluation
|
|
163
|
+
| Criterion | Weight | Chosen | Runner-up |
|
|
164
|
+
|-----------|--------|--------|-----------|
|
|
165
|
+
|
|
166
|
+
## Consequences
|
|
167
|
+
- Positive: ...
|
|
168
|
+
- Negative: ...
|
|
169
|
+
- Risks: ...
|
|
170
|
+
|
|
171
|
+
## Alternatives Rejected
|
|
172
|
+
- Option B: rejected because...
|
|
173
|
+
- Option C: rejected because...
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Common Stack Templates
|
|
179
|
+
|
|
180
|
+
### A: Startup / MVP (Speed)
|
|
181
|
+
|
|
182
|
+
| Layer | Choice | Why |
|
|
183
|
+
|-------|--------|-----|
|
|
184
|
+
| Language | TypeScript | One language front + back |
|
|
185
|
+
| Framework | Next.js (full-stack) or NestJS (API) | Fast iteration |
|
|
186
|
+
| Database | PostgreSQL (Supabase / Neon) | Managed, generous free tier |
|
|
187
|
+
| Auth | Better Auth / Clerk | No auth code to maintain |
|
|
188
|
+
| Cache | Redis (Upstash) | Serverless-friendly |
|
|
189
|
+
| Hosting | Vercel / Railway | Zero-config deploys |
|
|
190
|
+
|
|
191
|
+
### B: SaaS / Business App (Balance)
|
|
192
|
+
|
|
193
|
+
| Layer | Choice | Why |
|
|
194
|
+
|-------|--------|-----|
|
|
195
|
+
| Language | TypeScript or Python | Team preference |
|
|
196
|
+
| Framework | NestJS or FastAPI | Structured, testable |
|
|
197
|
+
| Database | PostgreSQL | Reliable, feature-rich |
|
|
198
|
+
| Queue | BullMQ (Redis) | Simple background jobs |
|
|
199
|
+
| Auth | OAuth 2.0 + JWT | Standard, flexible |
|
|
200
|
+
| Hosting | AWS ECS / Cloud Run | Scalable containers |
|
|
201
|
+
| Monitoring | Datadog / Grafana + Prometheus | Full observability |
|
|
202
|
+
|
|
203
|
+
### C: High-Performance (Scale)
|
|
204
|
+
|
|
205
|
+
| Layer | Choice | Why |
|
|
206
|
+
|-------|--------|-----|
|
|
207
|
+
| Language | Go or Rust | Max throughput, low latency |
|
|
208
|
+
| Database | PostgreSQL + Redis + ClickHouse | OLTP + cache + analytics |
|
|
209
|
+
| Queue | Kafka / Redpanda | High-throughput streaming |
|
|
210
|
+
| Hosting | Kubernetes (EKS/GKE) | Fine-grained scaling |
|
|
211
|
+
| Monitoring | Prometheus + Grafana + Jaeger | Metrics + tracing |
|
|
212
|
+
|
|
213
|
+
### D: AI / ML Application
|
|
214
|
+
|
|
215
|
+
| Layer | Choice | Why |
|
|
216
|
+
|-------|--------|-----|
|
|
217
|
+
| Language | Python (API) + TypeScript (frontend) | ML libs + modern UI |
|
|
218
|
+
| Framework | FastAPI + Next.js | Async + SSR |
|
|
219
|
+
| Database | PostgreSQL + pgvector | Relational + embeddings |
|
|
220
|
+
| Queue | Celery + Redis | ML job processing |
|
|
221
|
+
| Hosting | Modal / AWS GPU / Replicate | GPU access |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Anti-Patterns
|
|
226
|
+
|
|
227
|
+
| # | ❌ Don't | ✅ Do Instead |
|
|
228
|
+
|---|---------|--------------|
|
|
229
|
+
| 1 | "X is trending on HN" | Evaluate against YOUR requirements |
|
|
230
|
+
| 2 | Resume-Driven Development | Choose what team can maintain |
|
|
231
|
+
| 3 | "Must scale to 1M users" (day 1) | Build for 10× current need, not 1000× |
|
|
232
|
+
| 4 | Evaluate for weeks | Time-box to 3-5 days, then decide |
|
|
233
|
+
| 5 | No decision documentation | Write ADR for every major choice |
|
|
234
|
+
| 6 | Ignore operational cost | Include deploy, monitor, debug cost |
|
|
235
|
+
| 7 | "We'll rewrite later" | Assume you won't. Choose carefully. |
|
|
236
|
+
| 8 | Microservices by default | Start monolith, extract when needed |
|
|
237
|
+
| 9 | Different DB per service (day 1) | One database, split when justified |
|
|
238
|
+
| 10 | "It worked at Google" | You're not Google. Scale to YOUR context. |
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Common Issues
|
|
243
|
+
|
|
244
|
+
### Issue 1: "Team can't agree on a framework"
|
|
245
|
+
|
|
246
|
+
**Fix:** Time-box to 3 days. Fill the evaluation matrix. If scores within 10%, pick what the majority knows. Document in ADR. Move on.
|
|
247
|
+
|
|
248
|
+
### Issue 2: "We picked X but it doesn't fit"
|
|
249
|
+
|
|
250
|
+
**Fix:** Sunk cost fallacy check. If < 2 weeks invested, switch now. If > 2 weeks, document pain points and plan phased migration.
|
|
251
|
+
|
|
252
|
+
### Issue 3: "Do we need microservices?"
|
|
253
|
+
|
|
254
|
+
**Fix:** Almost certainly no. Start with a well-structured monolith. Extract to services only when: (a) different scaling needs, (b) different team ownership, (c) different deployment cadence.
|