@k2works/claude-code-booster 4.7.0 → 4.9.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 -21
- package/README.md +42 -42
- package/bin/claude-code-booster +90 -90
- package/lib/assets/.claude/README.md +275 -269
- package/lib/assets/.claude/agents/xp-architect.md +250 -250
- package/lib/assets/.claude/agents/xp-executive.md +207 -207
- package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -239
- package/lib/assets/.claude/agents/xp-product-manager.md +245 -245
- package/lib/assets/.claude/agents/xp-programmer.md +268 -268
- package/lib/assets/.claude/agents/xp-project-manager.md +229 -229
- package/lib/assets/.claude/agents/xp-technical-writer.md +224 -224
- package/lib/assets/.claude/agents/xp-tester.md +265 -265
- package/lib/assets/.claude/agents/xp-user-representative.md +204 -204
- package/lib/assets/.claude/scripts/generate-inception-deck.mjs +911 -911
- package/lib/assets/.claude/settings.json +11 -11
- package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +111 -111
- package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +83 -83
- package/lib/assets/.claude/skills/analyzing-business-architecture/SKILL.md +122 -122
- package/lib/assets/.claude/skills/analyzing-business-case/SKILL.md +148 -148
- package/lib/assets/.claude/skills/analyzing-business-strategy/SKILL.md +277 -277
- package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +77 -77
- package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +117 -117
- package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +84 -84
- package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +95 -95
- package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +95 -95
- package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +91 -91
- package/lib/assets/.claude/skills/analyzing-review/SKILL.md +174 -174
- package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +101 -101
- package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +89 -89
- package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +80 -80
- package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +72 -72
- package/lib/assets/.claude/skills/creating-adr/SKILL.md +113 -113
- package/lib/assets/.claude/skills/creating-iteration-report/SKILL.md +210 -210
- package/lib/assets/.claude/skills/creating-journal/SKILL.md +129 -0
- package/lib/assets/.claude/skills/creating-release-report/SKILL.md +161 -161
- package/lib/assets/.claude/skills/creating-slides/SKILL.md +86 -86
- package/lib/assets/.claude/skills/creating-slides/agents/openai.yaml +4 -4
- package/lib/assets/.claude/skills/creating-slides/references/manga-css.md +45 -45
- package/lib/assets/.claude/skills/creating-slides/scripts/slide_tools.py +239 -239
- package/lib/assets/.claude/skills/developing-backend/SKILL.md +100 -100
- package/lib/assets/.claude/skills/developing-frontend/SKILL.md +93 -93
- package/lib/assets/.claude/skills/developing-release/SKILL.md +120 -120
- package/lib/assets/.claude/skills/developing-review/SKILL.md +175 -175
- package/lib/assets/.claude/skills/developing-uiux-review/SKILL.md +207 -207
- package/lib/assets/.claude/skills/generating-bmc/SKILL.md +123 -123
- package/lib/assets/.claude/skills/generating-slides/SKILL.md +94 -94
- package/lib/assets/.claude/skills/git-commit/SKILL.md +81 -81
- package/lib/assets/.claude/skills/killing-processes/SKILL.md +44 -44
- package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -59
- package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -54
- package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -67
- package/lib/assets/.claude/skills/operating-docs/SKILL.md +219 -219
- package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -77
- package/lib/assets/.claude/skills/operating-qt/SKILL.md +147 -147
- package/lib/assets/.claude/skills/operating-review/SKILL.md +171 -171
- package/lib/assets/.claude/skills/operating-script/SKILL.md +145 -145
- package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -63
- package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +104 -104
- package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +168 -168
- package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +158 -158
- package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +144 -144
- package/lib/assets/.claude/skills/planning-releases/SKILL.md +119 -119
- package/lib/assets/.claude/skills/practicing-getting-start-tdd/SKILL.md +266 -266
- package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +151 -151
- package/lib/assets/.claude/skills/tracking-progress/SKILL.md +91 -91
- package/lib/assets/.claude/skills/validating-iteration-plan/SKILL.md +238 -238
- package/lib/assets/.claude/skills/validating-operating-setup/SKILL.md +118 -0
- package/lib/assets/.devcontainer/devcontainer.json +37 -37
- package/lib/assets/.env.example +17 -17
- package/lib/assets/.gitattributes +4 -4
- package/lib/assets/.github/workflows/docker-publish.yml +77 -77
- package/lib/assets/.github/workflows/mkdocs.yml +39 -39
- package/lib/assets/AGENTS.md +94 -94
- package/lib/assets/CLAUDE.md +193 -193
- package/lib/assets/README.md +291 -291
- package/lib/assets/docker-compose.yml +33 -33
- package/lib/assets/docs/adr/index.md +10 -10
- package/lib/assets/docs/article/functional-desgin-ppp/all/01-immutability-and-data-transformation.md +475 -475
- package/lib/assets/docs/article/functional-desgin-ppp/all/02-function-composition.md +519 -519
- package/lib/assets/docs/article/functional-desgin-ppp/all/03-polymorphism.md +537 -537
- package/lib/assets/docs/article/functional-desgin-ppp/all/04-data-validation.md +300 -300
- package/lib/assets/docs/article/functional-desgin-ppp/all/05-property-based-testing.md +320 -320
- package/lib/assets/docs/article/functional-desgin-ppp/all/06-tdd-and-functional.md +498 -498
- package/lib/assets/docs/article/functional-desgin-ppp/all/07-composite-pattern.md +298 -298
- package/lib/assets/docs/article/functional-desgin-ppp/all/08-decorator-pattern.md +291 -291
- package/lib/assets/docs/article/functional-desgin-ppp/all/09-adapter-pattern.md +336 -336
- package/lib/assets/docs/article/functional-desgin-ppp/all/10-strategy-pattern.md +303 -303
- package/lib/assets/docs/article/functional-desgin-ppp/all/11-command-pattern.md +286 -286
- package/lib/assets/docs/article/functional-desgin-ppp/all/12-visitor-pattern.md +322 -322
- package/lib/assets/docs/article/functional-desgin-ppp/all/13-abstract-factory-pattern.md +319 -319
- package/lib/assets/docs/article/functional-desgin-ppp/all/14-abstract-server-pattern.md +365 -365
- package/lib/assets/docs/article/functional-desgin-ppp/all/15-gossiping-bus-drivers.md +156 -156
- package/lib/assets/docs/article/functional-desgin-ppp/all/16-payroll-system.md +178 -178
- package/lib/assets/docs/article/functional-desgin-ppp/all/17-video-rental-system.md +312 -312
- package/lib/assets/docs/article/functional-desgin-ppp/all/18-concurrency-system.md +287 -287
- package/lib/assets/docs/article/functional-desgin-ppp/all/19-wa-tor-simulation.md +286 -286
- package/lib/assets/docs/article/functional-desgin-ppp/all/20-pattern-interactions.md +274 -274
- package/lib/assets/docs/article/functional-desgin-ppp/all/21-best-practices.md +294 -294
- package/lib/assets/docs/article/functional-desgin-ppp/all/22-oo-to-fp-migration.md +337 -337
- package/lib/assets/docs/article/functional-desgin-ppp/all/index.md +388 -388
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/01-immutability-and-data-transformation.md +273 -273
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/02-function-composition.md +380 -380
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/03-polymorphism.md +384 -384
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/04-clojure-spec.md +350 -350
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/05-property-based-testing.md +352 -352
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/06-tdd-in-functional.md +383 -383
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/07-composite-pattern.md +529 -529
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/08-decorator-pattern.md +395 -395
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/09-adapter-pattern.md +399 -399
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/10-strategy-pattern.md +485 -485
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/11-command-pattern.md +566 -566
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/12-visitor-pattern.md +567 -567
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/13-abstract-factory-pattern.md +475 -475
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/14-abstract-server-pattern.md +462 -462
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/15-gossiping-bus-drivers.md +325 -325
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/16-payroll-system.md +401 -401
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/17-video-rental-system.md +450 -450
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/18-concurrency-system.md +475 -475
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/19-wator-simulation.md +739 -739
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/20-pattern-interactions.md +567 -567
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/21-best-practices.md +518 -518
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/22-oo-to-fp-migration.md +532 -532
- package/lib/assets/docs/article/functional-desgin-ppp/clojure/index.md +241 -241
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/01-immutability-and-data-transformation.md +383 -383
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/02-function-composition.md +374 -374
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/03-polymorphism.md +375 -375
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/04-data-validation.md +195 -195
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/05-property-based-testing.md +268 -268
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/06-tdd-and-fp.md +294 -294
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/07-effects-and-pure-functions.md +164 -164
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/08-error-handling-strategies.md +168 -168
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/09-io-and-external-systems.md +254 -254
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/10-concurrency-patterns.md +269 -269
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/11-command-pattern.md +148 -148
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/12-visitor-pattern.md +176 -176
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/13-abstract-factory-pattern.md +604 -604
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/14-abstract-server-pattern.md +729 -729
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/15-gossiping-bus-drivers.md +291 -291
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/16-payroll-system.md +420 -420
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/17-video-rental-system.md +319 -319
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/18-concurrency-system.md +466 -466
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/19-wator-simulation.md +523 -523
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/20-pattern-interactions.md +287 -287
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/21-best-practices.md +340 -340
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/22-oo-to-fp-migration.md +395 -395
- package/lib/assets/docs/article/functional-desgin-ppp/elixir/index.md +248 -248
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/01-immutability-and-data-transformation.md +384 -384
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/02-function-composition.md +452 -452
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/03-polymorphism.md +495 -495
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/04-data-validation.md +416 -416
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/05-property-based-testing.md +382 -382
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/06-tdd-functional.md +687 -687
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/07-composite-pattern.md +442 -442
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/08-decorator-pattern.md +479 -479
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/09-adapter-pattern.md +479 -479
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/10-strategy-pattern.md +427 -427
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/11-command-pattern.md +428 -428
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/12-visitor-pattern.md +339 -339
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/13-abstract-factory-pattern.md +309 -309
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/14-abstract-server-pattern.md +596 -596
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/15-gossiping-bus-drivers.md +355 -355
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/16-payroll-system.md +350 -350
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/17-video-rental-system.md +414 -414
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/18-concurrency-system.md +367 -367
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/19-wator-simulation.md +403 -403
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/20-pattern-interactions.md +291 -291
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/21-best-practices.md +324 -324
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/22-oo-to-fp-migration.md +332 -332
- package/lib/assets/docs/article/functional-desgin-ppp/fsharp/index.md +274 -274
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/01-immutability-and-data-transformation.md +298 -298
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/02-function-composition.md +304 -304
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/03-polymorphism.md +362 -362
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/04-data-validation.md +257 -257
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/05-property-based-testing.md +254 -254
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/06-tdd-functional.md +283 -283
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/07-composite-pattern.md +395 -395
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/08-decorator-pattern.md +319 -319
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/09-adapter-pattern.md +382 -382
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/10-strategy-pattern.md +287 -287
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/11-command-pattern.md +303 -303
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/12-visitor-pattern.md +326 -326
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/13-abstract-factory-pattern.md +332 -332
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/14-abstract-server-pattern.md +379 -379
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/15-gossiping-bus-drivers.md +177 -177
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/16-payroll-system.md +219 -219
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/17-video-rental-system.md +244 -244
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/18-concurrency-system.md +363 -363
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/19-wator-simulation.md +438 -438
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/20-pattern-interactions.md +325 -325
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/21-best-practices.md +403 -403
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/22-oo-to-fp-migration.md +469 -469
- package/lib/assets/docs/article/functional-desgin-ppp/haskell/index.md +174 -174
- package/lib/assets/docs/article/functional-desgin-ppp/index.md +90 -90
- package/lib/assets/docs/article/functional-desgin-ppp/rust/01-immutability-and-data-transformation.md +450 -450
- package/lib/assets/docs/article/functional-desgin-ppp/rust/02-function-composition.md +463 -463
- package/lib/assets/docs/article/functional-desgin-ppp/rust/03-polymorphism.md +425 -425
- package/lib/assets/docs/article/functional-desgin-ppp/rust/04-data-validation.md +273 -273
- package/lib/assets/docs/article/functional-desgin-ppp/rust/05-property-based-testing.md +247 -247
- package/lib/assets/docs/article/functional-desgin-ppp/rust/06-tdd-and-functional.md +841 -841
- package/lib/assets/docs/article/functional-desgin-ppp/rust/07-composite-pattern.md +384 -384
- package/lib/assets/docs/article/functional-desgin-ppp/rust/08-decorator-pattern.md +383 -383
- package/lib/assets/docs/article/functional-desgin-ppp/rust/09-adapter-pattern.md +339 -339
- package/lib/assets/docs/article/functional-desgin-ppp/rust/10-strategy-pattern.md +331 -331
- package/lib/assets/docs/article/functional-desgin-ppp/rust/11-command-pattern.md +356 -356
- package/lib/assets/docs/article/functional-desgin-ppp/rust/12-visitor-pattern.md +379 -379
- package/lib/assets/docs/article/functional-desgin-ppp/rust/13-abstract-factory-pattern.md +361 -361
- package/lib/assets/docs/article/functional-desgin-ppp/rust/14-abstract-server-pattern.md +392 -392
- package/lib/assets/docs/article/functional-desgin-ppp/rust/15-gossiping-bus-drivers.md +300 -300
- package/lib/assets/docs/article/functional-desgin-ppp/rust/16-payroll-system.md +297 -297
- package/lib/assets/docs/article/functional-desgin-ppp/rust/17-video-rental-system.md +304 -304
- package/lib/assets/docs/article/functional-desgin-ppp/rust/18-concurrency-system.md +315 -315
- package/lib/assets/docs/article/functional-desgin-ppp/rust/19-wator-simulation.md +311 -311
- package/lib/assets/docs/article/functional-desgin-ppp/rust/20-pattern-interactions.md +304 -304
- package/lib/assets/docs/article/functional-desgin-ppp/rust/21-best-practices.md +336 -336
- package/lib/assets/docs/article/functional-desgin-ppp/rust/22-oo-to-fp-migration.md +349 -349
- package/lib/assets/docs/article/functional-desgin-ppp/rust/index.md +243 -243
- package/lib/assets/docs/article/functional-desgin-ppp/scala/01-immutability-and-data-transformation.md +328 -328
- package/lib/assets/docs/article/functional-desgin-ppp/scala/02-function-composition.md +348 -348
- package/lib/assets/docs/article/functional-desgin-ppp/scala/03-polymorphism.md +357 -357
- package/lib/assets/docs/article/functional-desgin-ppp/scala/04-data-validation.md +364 -364
- package/lib/assets/docs/article/functional-desgin-ppp/scala/05-property-based-testing.md +515 -515
- package/lib/assets/docs/article/functional-desgin-ppp/scala/06-tdd-functional.md +557 -557
- package/lib/assets/docs/article/functional-desgin-ppp/scala/07-composite-pattern.md +363 -363
- package/lib/assets/docs/article/functional-desgin-ppp/scala/08-decorator-pattern.md +327 -327
- package/lib/assets/docs/article/functional-desgin-ppp/scala/09-adapter-pattern.md +517 -517
- package/lib/assets/docs/article/functional-desgin-ppp/scala/10-strategy-pattern.md +441 -441
- package/lib/assets/docs/article/functional-desgin-ppp/scala/11-command-pattern.md +407 -407
- package/lib/assets/docs/article/functional-desgin-ppp/scala/12-visitor-pattern.md +379 -379
- package/lib/assets/docs/article/functional-desgin-ppp/scala/13-abstract-factory-pattern.md +398 -398
- package/lib/assets/docs/article/functional-desgin-ppp/scala/14-abstract-server-pattern.md +476 -476
- package/lib/assets/docs/article/functional-desgin-ppp/scala/15-gossiping-bus-drivers.md +391 -391
- package/lib/assets/docs/article/functional-desgin-ppp/scala/16-payroll-system.md +342 -342
- package/lib/assets/docs/article/functional-desgin-ppp/scala/17-video-rental-system.md +324 -324
- package/lib/assets/docs/article/functional-desgin-ppp/scala/18-concurrency-system.md +730 -730
- package/lib/assets/docs/article/functional-desgin-ppp/scala/19-wator-simulation.md +624 -624
- package/lib/assets/docs/article/functional-desgin-ppp/scala/20-pattern-interactions.md +512 -512
- package/lib/assets/docs/article/functional-desgin-ppp/scala/21-best-practices.md +433 -433
- package/lib/assets/docs/article/functional-desgin-ppp/scala/22-oo-to-fp-migration.md +688 -688
- package/lib/assets/docs/article/functional-desgin-ppp/scala/index.md +243 -243
- package/lib/assets/docs/article/getting-start-tdd/clojure/01-todo-list-and-first-test.md +166 -166
- package/lib/assets/docs/article/getting-start-tdd/clojure/02-fake-it-and-triangulation.md +162 -162
- package/lib/assets/docs/article/getting-start-tdd/clojure/03-obvious-implementation-and-refactoring.md +135 -135
- package/lib/assets/docs/article/getting-start-tdd/clojure/04-version-control-and-conventional-commits.md +88 -88
- package/lib/assets/docs/article/getting-start-tdd/clojure/05-package-management-and-static-analysis.md +299 -299
- package/lib/assets/docs/article/getting-start-tdd/clojure/06-task-runner-and-ci-cd.md +241 -241
- package/lib/assets/docs/article/getting-start-tdd/clojure/07-protocols-and-records.md +131 -131
- package/lib/assets/docs/article/getting-start-tdd/clojure/08-multimethods-and-design-patterns.md +130 -130
- package/lib/assets/docs/article/getting-start-tdd/clojure/09-namespaces-and-module-design.md +127 -127
- package/lib/assets/docs/article/getting-start-tdd/clojure/10-higher-order-functions-and-composition.md +114 -114
- package/lib/assets/docs/article/getting-start-tdd/clojure/11-persistent-data-and-pipeline.md +138 -138
- package/lib/assets/docs/article/getting-start-tdd/clojure/12-error-handling-and-spec.md +161 -161
- package/lib/assets/docs/article/getting-start-tdd/clojure/index.md +65 -65
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter01.md +232 -232
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter02.md +244 -244
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter03.md +202 -202
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter04.md +92 -92
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter05.md +256 -256
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter06.md +195 -195
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter07.md +214 -214
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter08.md +249 -249
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter09.md +174 -174
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter10.md +166 -166
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter11.md +192 -192
- package/lib/assets/docs/article/getting-start-tdd/csharp/chapter12.md +211 -211
- package/lib/assets/docs/article/getting-start-tdd/csharp/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/elixir/01-todo-list-and-first-test.md +87 -87
- package/lib/assets/docs/article/getting-start-tdd/elixir/02-fake-it-and-triangulation.md +95 -95
- package/lib/assets/docs/article/getting-start-tdd/elixir/03-obvious-implementation-and-refactoring.md +109 -109
- package/lib/assets/docs/article/getting-start-tdd/elixir/04-version-control-and-conventional-commits.md +96 -96
- package/lib/assets/docs/article/getting-start-tdd/elixir/05-package-management-and-static-analysis.md +88 -88
- package/lib/assets/docs/article/getting-start-tdd/elixir/06-task-runner-and-ci-cd.md +71 -71
- package/lib/assets/docs/article/getting-start-tdd/elixir/07-structs-and-protocols.md +110 -110
- package/lib/assets/docs/article/getting-start-tdd/elixir/08-pattern-matching-and-guards.md +108 -108
- package/lib/assets/docs/article/getting-start-tdd/elixir/09-module-design-and-behaviours.md +104 -104
- package/lib/assets/docs/article/getting-start-tdd/elixir/10-higher-order-functions-and-pipeline.md +178 -178
- package/lib/assets/docs/article/getting-start-tdd/elixir/11-stream-and-lazy-evaluation.md +142 -142
- package/lib/assets/docs/article/getting-start-tdd/elixir/12-error-handling-and-with.md +145 -145
- package/lib/assets/docs/article/getting-start-tdd/elixir/index.md +35 -35
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter01.md +202 -202
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter02.md +246 -246
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter03.md +218 -218
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter04.md +179 -179
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter05.md +267 -267
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter06.md +190 -190
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter07.md +161 -161
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter08.md +175 -175
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter09.md +222 -222
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter10.md +189 -189
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter11.md +212 -212
- package/lib/assets/docs/article/getting-start-tdd/fsharp/chapter12.md +215 -215
- package/lib/assets/docs/article/getting-start-tdd/fsharp/index.md +71 -71
- package/lib/assets/docs/article/getting-start-tdd/go/01-todo-list-and-first-test.md +213 -213
- package/lib/assets/docs/article/getting-start-tdd/go/02-fake-it-and-triangulation.md +302 -302
- package/lib/assets/docs/article/getting-start-tdd/go/03-obvious-implementation-and-refactoring.md +339 -339
- package/lib/assets/docs/article/getting-start-tdd/go/04-version-control-and-conventional-commits.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/go/05-package-management-and-static-analysis.md +272 -272
- package/lib/assets/docs/article/getting-start-tdd/go/06-task-runner-and-ci-cd.md +233 -233
- package/lib/assets/docs/article/getting-start-tdd/go/07-encapsulation-and-polymorphism.md +394 -394
- package/lib/assets/docs/article/getting-start-tdd/go/08-design-patterns.md +422 -422
- package/lib/assets/docs/article/getting-start-tdd/go/09-solid-principles-and-module-design.md +400 -400
- package/lib/assets/docs/article/getting-start-tdd/go/10-higher-order-functions-and-composition.md +226 -226
- package/lib/assets/docs/article/getting-start-tdd/go/11-immutable-data-and-pipeline.md +296 -296
- package/lib/assets/docs/article/getting-start-tdd/go/12-error-handling-and-type-safety.md +411 -411
- package/lib/assets/docs/article/getting-start-tdd/go/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/haskell/01-todo-list-and-first-test.md +279 -279
- package/lib/assets/docs/article/getting-start-tdd/haskell/02-fake-it-and-triangulation.md +337 -337
- package/lib/assets/docs/article/getting-start-tdd/haskell/03-obvious-implementation-and-refactoring.md +257 -257
- package/lib/assets/docs/article/getting-start-tdd/haskell/04-version-control-and-conventional-commits.md +182 -182
- package/lib/assets/docs/article/getting-start-tdd/haskell/05-package-management-and-static-analysis.md +313 -313
- package/lib/assets/docs/article/getting-start-tdd/haskell/06-task-runner-and-ci-cd.md +309 -309
- package/lib/assets/docs/article/getting-start-tdd/haskell/07-algebraic-data-types-and-type-classes.md +412 -412
- package/lib/assets/docs/article/getting-start-tdd/haskell/08-pattern-matching-and-guards.md +390 -390
- package/lib/assets/docs/article/getting-start-tdd/haskell/09-module-design-and-smart-constructors.md +461 -461
- package/lib/assets/docs/article/getting-start-tdd/haskell/10-higher-order-functions-and-currying.md +434 -434
- package/lib/assets/docs/article/getting-start-tdd/haskell/11-function-composition-and-point-free.md +392 -392
- package/lib/assets/docs/article/getting-start-tdd/haskell/12-monad-and-error-handling.md +631 -631
- package/lib/assets/docs/article/getting-start-tdd/haskell/index.md +49 -49
- package/lib/assets/docs/article/getting-start-tdd/index.md +93 -93
- package/lib/assets/docs/article/getting-start-tdd/integration/01-language-overview.md +375 -375
- package/lib/assets/docs/article/getting-start-tdd/integration/02-test-framework-comparison.md +349 -349
- package/lib/assets/docs/article/getting-start-tdd/integration/03-tdd-pattern-comparison.md +445 -445
- package/lib/assets/docs/article/getting-start-tdd/integration/04-type-system-comparison.md +409 -409
- package/lib/assets/docs/article/getting-start-tdd/integration/05-dev-environment-comparison.md +330 -330
- package/lib/assets/docs/article/getting-start-tdd/integration/06-learning-roadmap.md +290 -290
- package/lib/assets/docs/article/getting-start-tdd/integration/index.md +69 -69
- package/lib/assets/docs/article/getting-start-tdd/java/01-todo-list-and-first-test.md +234 -234
- package/lib/assets/docs/article/getting-start-tdd/java/02-fake-it-and-triangulation.md +261 -261
- package/lib/assets/docs/article/getting-start-tdd/java/03-obvious-implementation-and-refactoring.md +185 -185
- package/lib/assets/docs/article/getting-start-tdd/java/04-version-control-and-conventional-commits.md +115 -115
- package/lib/assets/docs/article/getting-start-tdd/java/05-package-management-and-static-analysis.md +382 -382
- package/lib/assets/docs/article/getting-start-tdd/java/06-task-runner-and-ci-cd.md +272 -272
- package/lib/assets/docs/article/getting-start-tdd/java/07-encapsulation-and-polymorphism.md +626 -626
- package/lib/assets/docs/article/getting-start-tdd/java/08-design-patterns.md +393 -393
- package/lib/assets/docs/article/getting-start-tdd/java/09-solid-principles-and-module-design.md +310 -310
- package/lib/assets/docs/article/getting-start-tdd/java/10-higher-order-functions-and-composition.md +188 -188
- package/lib/assets/docs/article/getting-start-tdd/java/11-immutable-data-and-pipeline.md +167 -167
- package/lib/assets/docs/article/getting-start-tdd/java/12-error-handling-and-type-safety.md +205 -205
- package/lib/assets/docs/article/getting-start-tdd/java/index.md +61 -61
- package/lib/assets/docs/article/getting-start-tdd/node/01-todo-list-and-first-test.md +244 -244
- package/lib/assets/docs/article/getting-start-tdd/node/02-fake-it-and-triangulation.md +262 -262
- package/lib/assets/docs/article/getting-start-tdd/node/03-obvious-implementation-and-refactoring.md +169 -169
- package/lib/assets/docs/article/getting-start-tdd/node/04-version-control-and-conventional-commits.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/node/05-package-management-and-static-analysis.md +314 -314
- package/lib/assets/docs/article/getting-start-tdd/node/06-task-runner-and-ci-cd.md +235 -235
- package/lib/assets/docs/article/getting-start-tdd/node/07-encapsulation-and-polymorphism.md +327 -327
- package/lib/assets/docs/article/getting-start-tdd/node/08-design-patterns.md +322 -322
- package/lib/assets/docs/article/getting-start-tdd/node/09-solid-principles-and-module-design.md +285 -285
- package/lib/assets/docs/article/getting-start-tdd/node/10-higher-order-functions-and-composition.md +199 -199
- package/lib/assets/docs/article/getting-start-tdd/node/11-immutable-data-and-pipeline.md +207 -207
- package/lib/assets/docs/article/getting-start-tdd/node/12-error-handling-and-type-safety.md +295 -295
- package/lib/assets/docs/article/getting-start-tdd/node/index.md +56 -56
- package/lib/assets/docs/article/getting-start-tdd/php/01-todo-list-and-first-test.md +259 -259
- package/lib/assets/docs/article/getting-start-tdd/php/02-fake-it-and-triangulation.md +200 -200
- package/lib/assets/docs/article/getting-start-tdd/php/03-obvious-implementation-and-refactoring.md +248 -248
- package/lib/assets/docs/article/getting-start-tdd/php/04-version-control-and-conventional-commits.md +141 -141
- package/lib/assets/docs/article/getting-start-tdd/php/05-package-management-and-static-analysis.md +410 -410
- package/lib/assets/docs/article/getting-start-tdd/php/06-task-runner-and-ci-cd.md +321 -321
- package/lib/assets/docs/article/getting-start-tdd/php/07-encapsulation-and-polymorphism.md +372 -372
- package/lib/assets/docs/article/getting-start-tdd/php/08-design-patterns.md +453 -453
- package/lib/assets/docs/article/getting-start-tdd/php/09-solid-principles-and-module-design.md +460 -460
- package/lib/assets/docs/article/getting-start-tdd/php/10-higher-order-functions-and-composition.md +182 -182
- package/lib/assets/docs/article/getting-start-tdd/php/11-immutable-data-and-pipeline.md +266 -266
- package/lib/assets/docs/article/getting-start-tdd/php/12-error-handling-and-type-safety.md +308 -308
- package/lib/assets/docs/article/getting-start-tdd/php/index.md +84 -84
- package/lib/assets/docs/article/getting-start-tdd/python/01-todo-list-and-first-test.md +201 -201
- package/lib/assets/docs/article/getting-start-tdd/python/02-fake-it-and-triangulation.md +247 -247
- package/lib/assets/docs/article/getting-start-tdd/python/03-obvious-implementation-and-refactoring.md +199 -199
- package/lib/assets/docs/article/getting-start-tdd/python/04-version-control-and-conventional-commits.md +87 -87
- package/lib/assets/docs/article/getting-start-tdd/python/05-package-management-and-static-analysis.md +274 -274
- package/lib/assets/docs/article/getting-start-tdd/python/06-task-runner-and-ci-cd.md +190 -190
- package/lib/assets/docs/article/getting-start-tdd/python/07-encapsulation-and-polymorphism.md +208 -208
- package/lib/assets/docs/article/getting-start-tdd/python/08-design-patterns.md +172 -172
- package/lib/assets/docs/article/getting-start-tdd/python/09-solid-principles-and-module-design.md +130 -130
- package/lib/assets/docs/article/getting-start-tdd/python/10-higher-order-functions-and-composition.md +122 -122
- package/lib/assets/docs/article/getting-start-tdd/python/11-immutable-data-and-pipeline.md +116 -116
- package/lib/assets/docs/article/getting-start-tdd/python/12-error-handling-and-type-safety.md +126 -126
- package/lib/assets/docs/article/getting-start-tdd/python/index.md +55 -55
- package/lib/assets/docs/article/getting-start-tdd/ruby/01-todo-list-and-first-test.md +231 -231
- package/lib/assets/docs/article/getting-start-tdd/ruby/02-fake-it-and-triangulation.md +238 -238
- package/lib/assets/docs/article/getting-start-tdd/ruby/03-obvious-implementation-and-refactoring.md +228 -228
- package/lib/assets/docs/article/getting-start-tdd/ruby/04-version-control-and-conventional-commits.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/ruby/05-package-management-and-static-analysis.md +287 -287
- package/lib/assets/docs/article/getting-start-tdd/ruby/06-task-runner-and-ci-cd.md +248 -248
- package/lib/assets/docs/article/getting-start-tdd/ruby/07-encapsulation-and-polymorphism.md +279 -279
- package/lib/assets/docs/article/getting-start-tdd/ruby/08-design-patterns.md +329 -329
- package/lib/assets/docs/article/getting-start-tdd/ruby/09-solid-principles-and-module-design.md +196 -196
- package/lib/assets/docs/article/getting-start-tdd/ruby/10-higher-order-functions-and-composition.md +175 -175
- package/lib/assets/docs/article/getting-start-tdd/ruby/11-immutable-data-and-pipeline.md +237 -237
- package/lib/assets/docs/article/getting-start-tdd/ruby/12-error-handling-and-type-safety.md +398 -398
- package/lib/assets/docs/article/getting-start-tdd/ruby/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/rust/01-todo-list-and-first-test.md +211 -211
- package/lib/assets/docs/article/getting-start-tdd/rust/02-fake-it-and-triangulation.md +264 -264
- package/lib/assets/docs/article/getting-start-tdd/rust/03-obvious-implementation-and-refactoring.md +233 -233
- package/lib/assets/docs/article/getting-start-tdd/rust/04-version-control-and-conventional-commits.md +92 -92
- package/lib/assets/docs/article/getting-start-tdd/rust/05-package-management-and-static-analysis.md +212 -212
- package/lib/assets/docs/article/getting-start-tdd/rust/06-task-runner-and-ci-cd.md +164 -164
- package/lib/assets/docs/article/getting-start-tdd/rust/07-encapsulation-and-polymorphism.md +142 -142
- package/lib/assets/docs/article/getting-start-tdd/rust/08-design-patterns.md +145 -145
- package/lib/assets/docs/article/getting-start-tdd/rust/09-solid-principles-and-module-design.md +110 -110
- package/lib/assets/docs/article/getting-start-tdd/rust/10-higher-order-functions-and-composition.md +94 -94
- package/lib/assets/docs/article/getting-start-tdd/rust/11-immutable-data-and-pipeline.md +105 -105
- package/lib/assets/docs/article/getting-start-tdd/rust/12-error-handling-and-type-safety.md +112 -112
- package/lib/assets/docs/article/getting-start-tdd/rust/index.md +83 -83
- package/lib/assets/docs/article/getting-start-tdd/scala/01-todo-list-and-first-test.md +111 -111
- package/lib/assets/docs/article/getting-start-tdd/scala/02-fake-it-and-triangulation.md +107 -107
- package/lib/assets/docs/article/getting-start-tdd/scala/03-obvious-implementation-and-refactoring.md +99 -99
- package/lib/assets/docs/article/getting-start-tdd/scala/04-version-control-and-conventional-commits.md +123 -123
- package/lib/assets/docs/article/getting-start-tdd/scala/05-package-management-and-static-analysis.md +196 -196
- package/lib/assets/docs/article/getting-start-tdd/scala/06-task-runner-and-ci-cd.md +186 -186
- package/lib/assets/docs/article/getting-start-tdd/scala/07-case-classes-and-traits.md +139 -139
- package/lib/assets/docs/article/getting-start-tdd/scala/08-pattern-matching-and-sealed-traits.md +106 -106
- package/lib/assets/docs/article/getting-start-tdd/scala/09-packages-and-module-design.md +75 -75
- package/lib/assets/docs/article/getting-start-tdd/scala/10-higher-order-functions-and-composition.md +104 -104
- package/lib/assets/docs/article/getting-start-tdd/scala/11-collections-and-lazy-evaluation.md +94 -94
- package/lib/assets/docs/article/getting-start-tdd/scala/12-error-handling-and-type-safety.md +92 -92
- package/lib/assets/docs/article/getting-start-tdd/scala/index.md +65 -65
- package/lib/assets/docs/article/grokking-concurrency/all/index.md +404 -404
- package/lib/assets/docs/article/grokking-concurrency/all/part-1-ch02-sequential.md +554 -554
- package/lib/assets/docs/article/grokking-concurrency/all/part-2-ch04-05-threads.md +469 -469
- package/lib/assets/docs/article/grokking-concurrency/all/part-3-ch06-multitasking.md +520 -520
- package/lib/assets/docs/article/grokking-concurrency/all/part-4-ch07-parallel-patterns.md +420 -420
- package/lib/assets/docs/article/grokking-concurrency/all/part-5-ch08-09-synchronization.md +510 -510
- package/lib/assets/docs/article/grokking-concurrency/all/part-6-ch10-11-nonblocking-io.md +435 -435
- package/lib/assets/docs/article/grokking-concurrency/all/part-7-ch12-async.md +465 -465
- package/lib/assets/docs/article/grokking-concurrency/all/part-8-ch13-mapreduce.md +377 -377
- package/lib/assets/docs/article/grokking-concurrency/clojure/index.md +116 -116
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-1.md +108 -108
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-2.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-3.md +122 -122
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-4.md +123 -123
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-5.md +118 -118
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-6.md +89 -89
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-7.md +100 -100
- package/lib/assets/docs/article/grokking-concurrency/clojure/part-8.md +120 -120
- package/lib/assets/docs/article/grokking-concurrency/csharp/index.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-1.md +97 -97
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-2.md +123 -123
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-3.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-4.md +112 -112
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-5.md +99 -99
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-6.md +61 -61
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-7.md +84 -84
- package/lib/assets/docs/article/grokking-concurrency/csharp/part-8.md +92 -92
- package/lib/assets/docs/article/grokking-concurrency/fsharp/index.md +65 -65
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-1.md +80 -80
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-2.md +103 -103
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-3.md +94 -94
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-4.md +110 -110
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-5.md +104 -104
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-6.md +93 -93
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-7.md +121 -121
- package/lib/assets/docs/article/grokking-concurrency/fsharp/part-8.md +107 -107
- package/lib/assets/docs/article/grokking-concurrency/haskell/index.md +248 -248
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-1.md +96 -96
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-2.md +96 -96
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-3.md +91 -91
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-4.md +106 -106
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-5.md +99 -99
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-6.md +95 -95
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-7.md +111 -111
- package/lib/assets/docs/article/grokking-concurrency/haskell/part-8.md +118 -118
- package/lib/assets/docs/article/grokking-concurrency/index.md +66 -66
- package/lib/assets/docs/article/grokking-concurrency/java/index.md +102 -102
- package/lib/assets/docs/article/grokking-concurrency/java/part-1.md +308 -308
- package/lib/assets/docs/article/grokking-concurrency/java/part-2.md +334 -334
- package/lib/assets/docs/article/grokking-concurrency/java/part-3.md +221 -221
- package/lib/assets/docs/article/grokking-concurrency/java/part-4.md +213 -213
- package/lib/assets/docs/article/grokking-concurrency/java/part-5.md +112 -112
- package/lib/assets/docs/article/grokking-concurrency/java/part-6.md +69 -69
- package/lib/assets/docs/article/grokking-concurrency/java/part-7.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/java/part-8.md +101 -101
- package/lib/assets/docs/article/grokking-concurrency/python/index.md +313 -313
- package/lib/assets/docs/article/grokking-concurrency/python/part-1.md +239 -239
- package/lib/assets/docs/article/grokking-concurrency/python/part-2.md +418 -418
- package/lib/assets/docs/article/grokking-concurrency/python/part-3.md +227 -227
- package/lib/assets/docs/article/grokking-concurrency/python/part-4.md +299 -299
- package/lib/assets/docs/article/grokking-concurrency/python/part-5.md +315 -315
- package/lib/assets/docs/article/grokking-concurrency/python/part-6.md +297 -297
- package/lib/assets/docs/article/grokking-concurrency/python/part-7.md +314 -314
- package/lib/assets/docs/article/grokking-concurrency/python/part-8.md +360 -360
- package/lib/assets/docs/article/grokking-concurrency/rust/index.md +270 -270
- package/lib/assets/docs/article/grokking-concurrency/rust/part-1.md +108 -108
- package/lib/assets/docs/article/grokking-concurrency/rust/part-2.md +120 -120
- package/lib/assets/docs/article/grokking-concurrency/rust/part-3.md +126 -126
- package/lib/assets/docs/article/grokking-concurrency/rust/part-4.md +175 -175
- package/lib/assets/docs/article/grokking-concurrency/rust/part-5.md +158 -158
- package/lib/assets/docs/article/grokking-concurrency/rust/part-6.md +94 -94
- package/lib/assets/docs/article/grokking-concurrency/rust/part-7.md +133 -133
- package/lib/assets/docs/article/grokking-concurrency/rust/part-8.md +155 -155
- package/lib/assets/docs/article/grokking-concurrency/scala/index.md +69 -69
- package/lib/assets/docs/article/grokking-concurrency/scala/part-1.md +78 -78
- package/lib/assets/docs/article/grokking-concurrency/scala/part-2.md +112 -112
- package/lib/assets/docs/article/grokking-concurrency/scala/part-3.md +93 -93
- package/lib/assets/docs/article/grokking-concurrency/scala/part-4.md +110 -110
- package/lib/assets/docs/article/grokking-concurrency/scala/part-5.md +119 -119
- package/lib/assets/docs/article/grokking-concurrency/scala/part-6.md +83 -83
- package/lib/assets/docs/article/grokking-concurrency/scala/part-7.md +131 -131
- package/lib/assets/docs/article/grokking-concurrency/scala/part-8.md +129 -129
- package/lib/assets/docs/article/grokkingfp/all/index.md +368 -368
- package/lib/assets/docs/article/grokkingfp/all/part-1-ch01-fp-introduction.md +530 -530
- package/lib/assets/docs/article/grokkingfp/all/part-1-ch02-pure-functions.md +923 -923
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch03-immutable-data.md +1128 -1128
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch04-higher-order-functions.md +1104 -1104
- package/lib/assets/docs/article/grokkingfp/all/part-2-ch05-flatmap.md +1026 -1026
- package/lib/assets/docs/article/grokkingfp/all/part-3-ch06-option.md +785 -785
- package/lib/assets/docs/article/grokkingfp/all/part-3-ch07-either-adt.md +871 -871
- package/lib/assets/docs/article/grokkingfp/all/part-4-ch08-io-monad.md +972 -972
- package/lib/assets/docs/article/grokkingfp/all/part-4-ch09-streams.md +926 -926
- package/lib/assets/docs/article/grokkingfp/all/part-5-ch10-concurrency.md +870 -870
- package/lib/assets/docs/article/grokkingfp/all/part-6-ch11-application.md +715 -715
- package/lib/assets/docs/article/grokkingfp/all/part-6-ch12-testing.md +626 -626
- package/lib/assets/docs/article/grokkingfp/all/writing-plan.md +712 -712
- package/lib/assets/docs/article/grokkingfp/clojure/index.md +276 -276
- package/lib/assets/docs/article/grokkingfp/clojure/part-1.md +667 -667
- package/lib/assets/docs/article/grokkingfp/clojure/part-2.md +643 -643
- package/lib/assets/docs/article/grokkingfp/clojure/part-3.md +620 -620
- package/lib/assets/docs/article/grokkingfp/clojure/part-4.md +697 -697
- package/lib/assets/docs/article/grokkingfp/clojure/part-5.md +751 -751
- package/lib/assets/docs/article/grokkingfp/clojure/part-6.md +721 -721
- package/lib/assets/docs/article/grokkingfp/csharp/index.md +246 -246
- package/lib/assets/docs/article/grokkingfp/csharp/part-1.md +811 -811
- package/lib/assets/docs/article/grokkingfp/csharp/part-2.md +971 -971
- package/lib/assets/docs/article/grokkingfp/csharp/part-3.md +981 -981
- package/lib/assets/docs/article/grokkingfp/csharp/part-4.md +949 -949
- package/lib/assets/docs/article/grokkingfp/csharp/part-5.md +947 -947
- package/lib/assets/docs/article/grokkingfp/csharp/part-6.md +739 -739
- package/lib/assets/docs/article/grokkingfp/elixir/index.md +203 -203
- package/lib/assets/docs/article/grokkingfp/elixir/part-1.md +712 -712
- package/lib/assets/docs/article/grokkingfp/elixir/part-2.md +838 -838
- package/lib/assets/docs/article/grokkingfp/elixir/part-3.md +985 -985
- package/lib/assets/docs/article/grokkingfp/elixir/part-4.md +974 -974
- package/lib/assets/docs/article/grokkingfp/elixir/part-5.md +1286 -1286
- package/lib/assets/docs/article/grokkingfp/elixir/part-6.md +1049 -1049
- package/lib/assets/docs/article/grokkingfp/fsharp/index.md +210 -210
- package/lib/assets/docs/article/grokkingfp/fsharp/part-1.md +714 -714
- package/lib/assets/docs/article/grokkingfp/fsharp/part-2.md +961 -961
- package/lib/assets/docs/article/grokkingfp/fsharp/part-3.md +972 -972
- package/lib/assets/docs/article/grokkingfp/fsharp/part-4.md +832 -832
- package/lib/assets/docs/article/grokkingfp/fsharp/part-5.md +911 -911
- package/lib/assets/docs/article/grokkingfp/fsharp/part-6.md +922 -922
- package/lib/assets/docs/article/grokkingfp/haskell/index.md +234 -234
- package/lib/assets/docs/article/grokkingfp/haskell/part-1.md +591 -591
- package/lib/assets/docs/article/grokkingfp/haskell/part-2.md +866 -866
- package/lib/assets/docs/article/grokkingfp/haskell/part-3.md +915 -915
- package/lib/assets/docs/article/grokkingfp/haskell/part-4.md +878 -878
- package/lib/assets/docs/article/grokkingfp/haskell/part-5.md +845 -845
- package/lib/assets/docs/article/grokkingfp/haskell/part-6.md +844 -844
- package/lib/assets/docs/article/grokkingfp/index.md +143 -143
- package/lib/assets/docs/article/grokkingfp/java/index.md +211 -211
- package/lib/assets/docs/article/grokkingfp/java/part-1.md +648 -648
- package/lib/assets/docs/article/grokkingfp/java/part-2.md +675 -675
- package/lib/assets/docs/article/grokkingfp/java/part-3.md +672 -672
- package/lib/assets/docs/article/grokkingfp/java/part-4.md +771 -771
- package/lib/assets/docs/article/grokkingfp/java/part-5.md +959 -959
- package/lib/assets/docs/article/grokkingfp/java/part-6.md +1328 -1328
- package/lib/assets/docs/article/grokkingfp/python/index.md +258 -258
- package/lib/assets/docs/article/grokkingfp/python/part-1.md +443 -443
- package/lib/assets/docs/article/grokkingfp/python/part-2.md +958 -958
- package/lib/assets/docs/article/grokkingfp/python/part-3.md +1004 -1004
- package/lib/assets/docs/article/grokkingfp/python/part-4.md +765 -765
- package/lib/assets/docs/article/grokkingfp/python/part-5.md +747 -747
- package/lib/assets/docs/article/grokkingfp/python/part-6.md +861 -861
- package/lib/assets/docs/article/grokkingfp/ruby/index.md +330 -330
- package/lib/assets/docs/article/grokkingfp/ruby/part-1.md +755 -755
- package/lib/assets/docs/article/grokkingfp/ruby/part-2.md +938 -938
- package/lib/assets/docs/article/grokkingfp/ruby/part-3.md +946 -946
- package/lib/assets/docs/article/grokkingfp/ruby/part-4.md +921 -921
- package/lib/assets/docs/article/grokkingfp/ruby/part-5.md +908 -908
- package/lib/assets/docs/article/grokkingfp/ruby/part-6.md +1412 -1412
- package/lib/assets/docs/article/grokkingfp/rust/index.md +242 -242
- package/lib/assets/docs/article/grokkingfp/rust/part-1.md +634 -634
- package/lib/assets/docs/article/grokkingfp/rust/part-2.md +1060 -1060
- package/lib/assets/docs/article/grokkingfp/rust/part-3.md +994 -994
- package/lib/assets/docs/article/grokkingfp/rust/part-4.md +573 -573
- package/lib/assets/docs/article/grokkingfp/rust/part-5.md +705 -705
- package/lib/assets/docs/article/grokkingfp/rust/part-6.md +508 -508
- package/lib/assets/docs/article/grokkingfp/scala/index.md +171 -171
- package/lib/assets/docs/article/grokkingfp/scala/part-1.md +543 -543
- package/lib/assets/docs/article/grokkingfp/scala/part-2.md +946 -946
- package/lib/assets/docs/article/grokkingfp/scala/part-3.md +919 -919
- package/lib/assets/docs/article/grokkingfp/scala/part-4.md +742 -742
- package/lib/assets/docs/article/grokkingfp/scala/part-5.md +722 -722
- package/lib/assets/docs/article/grokkingfp/scala/part-6.md +867 -867
- package/lib/assets/docs/article/grokkingfp/typescript/index.md +273 -273
- package/lib/assets/docs/article/grokkingfp/typescript/part-1.md +561 -561
- package/lib/assets/docs/article/grokkingfp/typescript/part-2.md +1129 -1129
- package/lib/assets/docs/article/grokkingfp/typescript/part-3.md +842 -842
- package/lib/assets/docs/article/grokkingfp/typescript/part-4.md +1087 -1087
- package/lib/assets/docs/article/grokkingfp/typescript/part-5.md +717 -717
- package/lib/assets/docs/article/grokkingfp/typescript/part-6.md +982 -982
- package/lib/assets/docs/article/index.md +41 -41
- package/lib/assets/docs/article/practical-database-design/index.md +121 -121
- package/lib/assets/docs/article/practical-database-design/part1/chapter01.md +288 -288
- package/lib/assets/docs/article/practical-database-design/part1/chapter02.md +518 -518
- package/lib/assets/docs/article/practical-database-design/part1/chapter03.md +557 -557
- package/lib/assets/docs/article/practical-database-design/part2/chapter04.md +924 -924
- package/lib/assets/docs/article/practical-database-design/part2/chapter05.md +1627 -1627
- package/lib/assets/docs/article/practical-database-design/part2/chapter06.md +2716 -2716
- package/lib/assets/docs/article/practical-database-design/part2/chapter07.md +2082 -2082
- package/lib/assets/docs/article/practical-database-design/part2/chapter08.md +2105 -2105
- package/lib/assets/docs/article/practical-database-design/part2/chapter09.md +2031 -2031
- package/lib/assets/docs/article/practical-database-design/part2/chapter10.md +1387 -1387
- package/lib/assets/docs/article/practical-database-design/part2/chapter11.md +1677 -1677
- package/lib/assets/docs/article/practical-database-design/part2/chapter12.md +1417 -1417
- package/lib/assets/docs/article/practical-database-design/part2/chapter13.md +1434 -1434
- package/lib/assets/docs/article/practical-database-design/part3/chapter14.md +667 -667
- package/lib/assets/docs/article/practical-database-design/part3/chapter15.md +1625 -1625
- package/lib/assets/docs/article/practical-database-design/part3/chapter16.md +1915 -1915
- package/lib/assets/docs/article/practical-database-design/part3/chapter17.md +1708 -1708
- package/lib/assets/docs/article/practical-database-design/part3/chapter18.md +2095 -2095
- package/lib/assets/docs/article/practical-database-design/part3/chapter19.md +1123 -1123
- package/lib/assets/docs/article/practical-database-design/part3/chapter20.md +1031 -1031
- package/lib/assets/docs/article/practical-database-design/part3/chapter21.md +1382 -1382
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter14-orm.md +991 -991
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter15-orm.md +1300 -1300
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter16-orm.md +1166 -1166
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter17-orm.md +1584 -1584
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter18-orm.md +1183 -1183
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter19-orm.md +1016 -1016
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter20-orm.md +1753 -1753
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter21-orm.md +1447 -1447
- package/lib/assets/docs/article/practical-database-design/part3-orm/chapter22-orm.md +1878 -1878
- package/lib/assets/docs/article/practical-database-design/part4/chapter22.md +965 -965
- package/lib/assets/docs/article/practical-database-design/part4/chapter23.md +2069 -2069
- package/lib/assets/docs/article/practical-database-design/part4/chapter24.md +2439 -2439
- package/lib/assets/docs/article/practical-database-design/part4/chapter25.md +3661 -3661
- package/lib/assets/docs/article/practical-database-design/part4/chapter26.md +2916 -2916
- package/lib/assets/docs/article/practical-database-design/part4/chapter27.md +3105 -3105
- package/lib/assets/docs/article/practical-database-design/part4/chapter28.md +2697 -2697
- package/lib/assets/docs/article/practical-database-design/part4/chapter29.md +2544 -2544
- package/lib/assets/docs/article/practical-database-design/part4/chapter30.md +2180 -2180
- package/lib/assets/docs/article/practical-database-design/part4/chapter31.md +1192 -1192
- package/lib/assets/docs/article/practical-database-design/part4/chapter32.md +2101 -2101
- package/lib/assets/docs/article/practical-database-design/part5/chapter33.md +1032 -1032
- package/lib/assets/docs/article/practical-database-design/part5/chapter34.md +1609 -1609
- package/lib/assets/docs/article/practical-database-design/part5/chapter35.md +1453 -1453
- package/lib/assets/docs/article/practical-database-design/part5/chapter36.md +1292 -1292
- package/lib/assets/docs/article/practical-database-design/part5/chapter37.md +1470 -1470
- package/lib/assets/docs/article/practical-database-design/part5/chapter38.md +1698 -1698
- package/lib/assets/docs/article/practical-database-design/part5/chapter39.md +2334 -2334
- package/lib/assets/docs/article/practical-database-design/study/study2-1.md +1693 -1693
- package/lib/assets/docs/article/practical-database-design/study/study2-2.md +1347 -1347
- package/lib/assets/docs/article/practical-database-design/study/study2-3.md +2044 -2044
- package/lib/assets/docs/article/practical-database-design/study/study2-4.md +2229 -2229
- package/lib/assets/docs/article/practical-database-design/study/study2-5.md +2418 -2418
- package/lib/assets/docs/article/practical-database-design/study/study3-1.md +2205 -2205
- package/lib/assets/docs/article/practical-database-design/study/study3-2.md +2221 -2221
- package/lib/assets/docs/article/practical-database-design/study/study3-3.md +2253 -2253
- package/lib/assets/docs/article/practical-database-design/study/study3-4.md +2106 -2106
- package/lib/assets/docs/article/practical-database-design/study/study3-5.md +2507 -2507
- package/lib/assets/docs/article/practical-database-design/study/study4-1.md +2587 -2587
- package/lib/assets/docs/article/practical-database-design/study/study4-2.md +2075 -2075
- package/lib/assets/docs/article/practical-database-design/study/study4-3.md +1805 -1805
- package/lib/assets/docs/article/practical-database-design/study/study4-4.md +1895 -1895
- package/lib/assets/docs/article/practical-database-design/study/study4-5.md +2878 -2878
- package/lib/assets/docs/assets/css/extra.css +29 -29
- package/lib/assets/docs/assets/js/extra.js +44 -44
- package/lib/assets/docs/design/index.md +44 -44
- package/lib/assets/docs/development/index.md +39 -39
- package/lib/assets/docs/index.md +33 -33
- package/lib/assets/docs/operation/index.md +27 -27
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/343/203/225/343/203/255/343/203/274.md +546 -546
- package/lib/assets/docs/reference/CodexCLIMCP/343/202/265/343/203/274/343/203/220/343/203/274/350/250/255/345/256/232/346/211/213/351/240/206.md +341 -341
- package/lib/assets/docs/reference/Java/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +581 -581
- package/lib/assets/docs/reference/SonarQube/343/203/255/343/203/274/343/202/253/343/203/253/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +642 -642
- package/lib/assets/docs/reference/TypeScript/343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/346/247/213/347/257/211/343/202/254/343/202/244/343/203/211.md +465 -465
- package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +450 -450
- package/lib/assets/docs/reference/images/Ansoff.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BMC.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandBasicStrategy.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandCategorization.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandRecurutementStrategy.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BrandValue.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/BusinessActivitiy.svg +3 -3
- package/lib/assets/docs/reference/images/HRM.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/MarketingStructure.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/OrganizationElemnts.svg +3 -3
- package/lib/assets/docs/reference/images/PPM.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/PositioningMap.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ProductLayer.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ProductMix.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/SWOT.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/TargetMarket.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ThreeGenericStrategies.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/VRIO.drawio.svg +3 -3
- package/lib/assets/docs/reference/images/ValueChain.drawio.svg +3 -3
- package/lib/assets/docs/reference/index.md +53 -53
- package/lib/assets/docs/reference//343/202/210/343/201/204/343/202/275/343/203/225/343/203/210/343/202/246/343/202/247/343/202/242/343/201/250/343/201/257.md +250 -250
- package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +2216 -2216
- package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1878 -1878
- package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +550 -550
- package/lib/assets/docs/reference//343/202/263/343/203/274/343/203/207/343/202/243/343/203/263/343/202/260/343/201/250/343/203/206/343/202/271/343/203/210/343/202/254/343/202/244/343/203/211.md +705 -705
- package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +1313 -1313
- package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +311 -311
- package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +599 -599
- package/lib/assets/docs/reference//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +528 -528
- package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +689 -689
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/202/254/343/202/244/343/203/211.md +461 -461
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +580 -580
- package/lib/assets/docs/reference//343/203/255/343/202/270/343/202/253/343/203/253/343/202/267/343/203/263/343/202/255/343/203/263/343/202/260.md +1367 -1367
- package/lib/assets/docs/reference//344/274/201/346/245/255/347/265/214/345/226/266/350/253/226.md +2637 -2637
- package/lib/assets/docs/reference//347/222/260/345/242/203/345/244/211/346/225/260/347/256/241/347/220/206/343/202/254/343/202/244/343/203/211.md +665 -665
- package/lib/assets/docs/reference//347/265/214/345/226/266/346/210/246/347/225/245/345/210/206/346/236/220/343/202/254/343/202/244/343/203/211.md +566 -566
- package/lib/assets/docs/reference//350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1248 -1248
- package/lib/assets/docs/reference//350/250/200/350/252/236/345/210/245/351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +518 -518
- package/lib/assets/docs/reference//351/201/213/345/226/266/347/256/241/347/220/206.md +1482 -1482
- package/lib/assets/docs/reference//351/201/213/347/224/250/343/202/271/343/202/257/343/203/252/343/203/227/343/203/210/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +421 -421
- package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +392 -392
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +305 -305
- package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1236 -1236
- package/lib/assets/docs/requirements/index.md +17 -17
- package/lib/assets/docs/review/index.md +5 -5
- package/lib/assets/docs/strategy/index.md +17 -17
- package/lib/assets/docs/template/ADR.md +30 -30
- package/lib/assets/docs/template/AWS/343/202/271/343/203/206/343/203/274/343/202/270/343/203/263/343/202/260/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +1366 -1366
- package/lib/assets/docs/template/AWS/343/203/227/343/203/255/343/203/200/343/202/257/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +634 -634
- package/lib/assets/docs/template/README.md +50 -50
- package/lib/assets/docs/template/index.md +24 -24
- package/lib/assets/docs/template//343/201/276/343/201/232/343/201/223/343/202/214/343/202/222/350/252/255/343/202/202/343/201/206/343/203/252/343/202/271/343/203/210.md +12 -12
- package/lib/assets/docs/template//343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +547 -547
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +58 -58
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273.md +327 -327
- package/lib/assets/docs/template//343/202/244/343/203/263/343/202/273/343/203/227/343/202/267/343/203/247/343/203/263/343/203/207/343/203/203/343/202/255.md +13 -13
- package/lib/assets/docs/template//343/203/223/343/202/270/343/203/215/343/202/271/343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243.md +379 -379
- package/lib/assets/docs/template//343/203/252/343/203/252/343/203/274/343/202/271/345/256/214/344/272/206/345/240/261/345/221/212/346/233/270.md +275 -275
- package/lib/assets/docs/template//344/272/213/344/276/213/345/210/206/346/236/220.md +513 -513
- package/lib/assets/docs/template//344/274/201/346/245/255/345/210/206/346/236/220.md +573 -573
- package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +69 -69
- package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +669 -669
- package/lib/assets/docs/template//350/250/255/350/250/210.md +173 -173
- package/lib/assets/docs/template//351/226/213/347/231/272/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +688 -688
- package/lib/assets/gulpfile.js +25 -25
- package/lib/assets/mkdocs.yml +139 -139
- package/lib/assets/ops/docker/mkdoc/Dockerfile +19 -19
- package/lib/assets/ops/docker/sonarqube-local/docker-compose.yml +57 -57
- package/lib/assets/ops/scripts/journal.js +180 -180
- package/lib/assets/ops/scripts/mkdocs.js +82 -82
- package/lib/assets/ops/scripts/release.js +431 -431
- package/lib/assets/ops/scripts/sonar_local.js +726 -726
- package/lib/assets/ops/scripts/ssh.js +190 -190
- package/lib/assets/ops/scripts/vault.js +299 -299
- package/lib/assets/package-lock.json +1653 -1653
- package/lib/assets/package.json +40 -40
- package/lib/gulpfile.js +37 -37
- package/package.json +41 -41
|
@@ -1,238 +1,238 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: validating-iteration-plan
|
|
3
|
-
description: イテレーション計画と上流設計ドキュメント群(ユーザーストーリー、ドメインモデル、データモデル、UI 設計)との整合性を検証する。「イテレーション計画を検証したい」「計画の整合性をチェックして」「イテレーション計画を作成した」「計画と設計ドキュメントの不整合を確認したい」といった場面で発動する。planning-releases でイテレーション計画を作成した直後にも積極的に使用すること。計画作成後に必ず本検証を実施することで、開発着手前にドキュメント間の不整合を検知・修正できる。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# イテレーション計画の整合性検証
|
|
7
|
-
|
|
8
|
-
イテレーション計画は複数の設計ドキュメントから情報を引用・参照するため、ドキュメント間の不整合がそのまま実装の不整合に直結する。計画作成後に本検証を実施し、開発着手前に不整合を検知・修正する。
|
|
9
|
-
|
|
10
|
-
## 検証対象ドキュメント
|
|
11
|
-
|
|
12
|
-
| # | 検証対象 | パス | 検証内容 |
|
|
13
|
-
|---|---------|------|---------|
|
|
14
|
-
| 1 | テンプレートフォーマット | `docs/template/イテレーション計画.md` | 見出し構成・必須セクション・表形式・コードブロック形式の一致 |
|
|
15
|
-
| 2 | ユーザーストーリー | `docs/requirements/user_story.md` | ストーリー ID・タイトル・アクター・受入基準の一致 |
|
|
16
|
-
| 3 | ドメインモデル | `docs/design/domain-model.md` | 集約・エンティティ・値オブジェクトの名称・構造・関連の一致 |
|
|
17
|
-
| 4 | データモデル | `docs/design/data-model.md` | テーブル名・カラム名・型・制約・命名規約の一致 |
|
|
18
|
-
| 5 | UI 設計(ビュー) | `docs/design/ui_design.md` | ワイヤーフレーム構造・ナビバー形式・テーブル表記・URL パスの一致 |
|
|
19
|
-
| 6 | UI 設計(インタラクション) | `docs/design/ui_design.md` | 画面遷移・htmx パターン・PRG パターン・エラー処理・フィードバックメッセージの一致 |
|
|
20
|
-
| 7 | ゴールの整合性 | イテレーション計画全体 | ゴール・ストーリー・設計・タスク・見積もりの内部整合性 |
|
|
21
|
-
| 8 | 過去レビュー指摘事項 | `docs/review/` 内の最新レビューファイル | 高・中優先度の指摘がストーリーまたはタスクとして計画に反映されているか |
|
|
22
|
-
|
|
23
|
-
## 検証手順
|
|
24
|
-
|
|
25
|
-
8 ステップを順に実行する。各ステップは並列実行も可能。不整合を発見した場合はイテレーション計画を修正し、変更点を注記する。
|
|
26
|
-
|
|
27
|
-
### ステップ 1: テンプレートフォーマットとの整合性
|
|
28
|
-
|
|
29
|
-
イテレーション計画全体が `docs/template/イテレーション計画.md` のフォーマットに従っているかを確認する。以降の内容整合性チェックに入る前に、見出し構成・必須セクション・表形式・コードブロック形式がテンプレートから逸脱していないことを検証する。
|
|
30
|
-
|
|
31
|
-
**チェック項目**:
|
|
32
|
-
|
|
33
|
-
- [ ] 文書タイトルが `# イテレーション X 計画` 形式になっている
|
|
34
|
-
- [ ] テンプレートの主要セクション(概要、ゴール、ユーザーストーリー、スケジュール、設計、リスクと対策、完了条件、更新履歴、関連ドキュメント)が揃っている
|
|
35
|
-
- [ ] 各セクションの見出しレベルがテンプレートと一致している
|
|
36
|
-
- [ ] 概要、対象ストーリー、タスク、リスク、更新履歴などの表形式がテンプレートの列構成に従っている
|
|
37
|
-
- [ ] `mermaid`、`plantuml`、`prisma` などのコードブロック種別がテンプレートと一致している
|
|
38
|
-
- [ ] 完了条件に `Definition of Done` と `デモ項目` が含まれている
|
|
39
|
-
- [ ] 関連ドキュメント節に最低限の参照先が記載されている
|
|
40
|
-
|
|
41
|
-
**よくある不整合**:
|
|
42
|
-
|
|
43
|
-
- テンプレート必須セクションの欠落(例: 「更新履歴」がない)
|
|
44
|
-
- 見出し名や階層の変更(例: 「ユーザーストーリー」ではなく独自見出しを使用)
|
|
45
|
-
- 表の列不足や列名変更
|
|
46
|
-
- コードブロックの種別未指定、またはテンプレートと異なる記法
|
|
47
|
-
|
|
48
|
-
### ステップ 2: ユーザーストーリーとの整合性
|
|
49
|
-
|
|
50
|
-
イテレーション計画の「ストーリー詳細」セクションと `user_story.md` を比較する。
|
|
51
|
-
|
|
52
|
-
**チェック項目**:
|
|
53
|
-
|
|
54
|
-
- [ ] ストーリー ID(US番号)が一致している
|
|
55
|
-
- [ ] ストーリータイトルが一致している
|
|
56
|
-
- [ ] アクター(「として」の部分)が一致している
|
|
57
|
-
- [ ] ストーリー文(「したい」「なぜなら」の部分)が一致している(省略なく全文一致)
|
|
58
|
-
- [ ] 受入基準の項目数と内容が一致している
|
|
59
|
-
- [ ] 対応 UC 番号が一致している
|
|
60
|
-
|
|
61
|
-
**よくある不整合**:
|
|
62
|
-
|
|
63
|
-
- ストーリー文の一部省略(例: 「予約情報」-> 元は「予約情報(出発地・目的地・期限・貨物仕様)」)
|
|
64
|
-
- 受入基準の列挙が省略されている(例: 制約条件の具体名が省略)
|
|
65
|
-
|
|
66
|
-
### ステップ 3: ドメインモデルとの整合性
|
|
67
|
-
|
|
68
|
-
イテレーション計画の「設計 > ドメインモデル」セクションと `domain-model.md` を比較する。
|
|
69
|
-
|
|
70
|
-
**チェック項目**:
|
|
71
|
-
|
|
72
|
-
- [ ] 集約ルートの名称が一致している
|
|
73
|
-
- [ ] 値オブジェクトの名称・フィールドが一致している(例: `Schedule` vs `VoyageSchedule`)
|
|
74
|
-
- [ ] エンティティの名称・フィールドが一致している(例: `CarrierMovement` vs `VoyageSchedule`)
|
|
75
|
-
- [ ] 共有カーネル参照が正しい(例: `Location` を使うべき箇所で `String` になっていないか)
|
|
76
|
-
- [ ] 既存の集約構造を破壊する変更になっていないか
|
|
77
|
-
- [ ] 新規追加の場合、既存構造との関連が明記されているか
|
|
78
|
-
- [ ] domain-model.md への反映が必要な変更点が注記されているか
|
|
79
|
-
|
|
80
|
-
**よくある不整合**:
|
|
81
|
-
|
|
82
|
-
- 既存の値オブジェクト名と異なる名称を使用(例: `Schedule` -> `VoyageSchedule`)
|
|
83
|
-
- 既存の集約構造(親子関係)を無視した新規モデル設計
|
|
84
|
-
- 共有カーネル(`Location`)を参照せず、直接 `String` で locode を保持
|
|
85
|
-
|
|
86
|
-
### ステップ 4: データモデルとの整合性
|
|
87
|
-
|
|
88
|
-
イテレーション計画の「設計 > データモデル」セクションと `data-model.md` を比較する。
|
|
89
|
-
|
|
90
|
-
**チェック項目**:
|
|
91
|
-
|
|
92
|
-
- [ ] テーブル名の単数形/複数形が data-model.md の規約と一致している
|
|
93
|
-
- [ ] PK 設計が一致している(サロゲートキー `BIGSERIAL` + 業務キー `UK` の規約)
|
|
94
|
-
- [ ] FK の参照先がサロゲートキー(`id`)を参照している(業務キー直接参照になっていないか)
|
|
95
|
-
- [ ] カラム名が一致している(例: `departure_location_unlocode` vs `departure_location`)
|
|
96
|
-
- [ ] データ型が一致している(例: `TIMESTAMP` vs `DATE`)
|
|
97
|
-
- [ ] 順序カラム名が一致している(例: `seq_number` vs `sequence_order`)
|
|
98
|
-
- [ ] 監査カラム(`created_at`・`updated_at`)が含まれている
|
|
99
|
-
- [ ] DB 構文が一致している(例: `BIGSERIAL` vs `AUTO_INCREMENT`)
|
|
100
|
-
- [ ] 既存テーブルの拡張か新規テーブルかが明確に区別されている
|
|
101
|
-
- [ ] 新規テーブルの場合、既存テーブルとの関係が既存の設計と整合しているか
|
|
102
|
-
|
|
103
|
-
**よくある不整合**:
|
|
104
|
-
|
|
105
|
-
- テーブル名が複数形(`voyages`)-> data-model.md は単数形(`voyage`)
|
|
106
|
-
- PK が業務キー直接(`voyage_number PRIMARY KEY`)-> 規約はサロゲートキー + UK
|
|
107
|
-
- FK が業務キー参照(`REFERENCES voyages(voyage_number)`)-> 規約は `voyage.id` 参照
|
|
108
|
-
- PostgreSQL 構文(`BIGSERIAL`)と MySQL 構文(`AUTO_INCREMENT`)の混在
|
|
109
|
-
|
|
110
|
-
### ステップ 5: UI 設計(ビュー)との整合性
|
|
111
|
-
|
|
112
|
-
イテレーション計画の「設計 > ユーザーインターフェース > ビュー」セクションと `ui_design.md` を比較する。
|
|
113
|
-
|
|
114
|
-
**チェック項目**:
|
|
115
|
-
|
|
116
|
-
- [ ] ナビバー構造が `{/ <b>CargoTracker</b> | メニュー... | [ログアウト] }` 形式と一致している
|
|
117
|
-
- [ ] テーブルヘッダー表記が `**太字**` 形式と一致している(`^カレット^` 形式になっていないか)
|
|
118
|
-
- [ ] URL パスが画面一覧の規約と一致している
|
|
119
|
-
- [ ] 新規画面の画面一覧エントリが定義されている
|
|
120
|
-
- [ ] 既存画面の拡張の場合、拡張箇所が明確に区別されている
|
|
121
|
-
- [ ] 検索フォームのレイアウトが既存画面と一致している
|
|
122
|
-
- [ ] ボタン配置・ラベルが既存画面のパターンと一致している
|
|
123
|
-
|
|
124
|
-
**よくある不整合**:
|
|
125
|
-
|
|
126
|
-
- 独自のナビバー構造を使用
|
|
127
|
-
- テーブルヘッダーの表記形式が異なる
|
|
128
|
-
- URL パスが未定義
|
|
129
|
-
- 既存画面との関係(拡張 vs 新規)が不明確
|
|
130
|
-
|
|
131
|
-
### ステップ 6: UI 設計(インタラクション)との整合性
|
|
132
|
-
|
|
133
|
-
イテレーション計画の「設計 > ユーザーインターフェース > インタラクション」セクションと `ui_design.md` の画面遷移図・htmx パターン・フィードバック規約を比較する。
|
|
134
|
-
|
|
135
|
-
**チェック項目**:
|
|
136
|
-
|
|
137
|
-
- [ ] 画面遷移図に全画面の state が定義されている(URL パス・説明テキスト付き)
|
|
138
|
-
- [ ] バリデーションエラーの自己ループ遷移が全フォーム画面に定義されている
|
|
139
|
-
- [ ] 遷移方式(GET / PRG)が各遷移に明記されている
|
|
140
|
-
- [ ] 既存の state(航路一覧等)との遷移関係が定義されている
|
|
141
|
-
- [ ] htmx パターン(`hx-get`/`hx-post`・`hx-target`・`hx-swap`)が定義されている
|
|
142
|
-
- [ ] フィードバックメッセージ(成功・警告・エラー)とスタイル(`alert-*`)が定義されている
|
|
143
|
-
- [ ] htmx エラーハンドリング(`htmx:responseError`)への対応が考慮されている
|
|
144
|
-
|
|
145
|
-
**よくある不整合**:
|
|
146
|
-
|
|
147
|
-
- バリデーションエラー自己ループ遷移の欠落
|
|
148
|
-
- htmx パターンの記述がない(画面遷移図のみで動的更新方式が不明)
|
|
149
|
-
- フィードバックメッセージの定義がない
|
|
150
|
-
- 既存画面 state との遷移関係が切断されている
|
|
151
|
-
|
|
152
|
-
### ステップ 7: ゴールの整合性(最終確認)
|
|
153
|
-
|
|
154
|
-
イテレーション計画全体を俯瞰し、イテレーションのゴールと各ストーリー・設計・タスクが一貫しているかを確認する。ステップ 1-6 がフォーマットおよび個別ドキュメントとの突合であるのに対し、本ステップは計画内部の論理的整合性を検証する最終関門である。
|
|
155
|
-
|
|
156
|
-
**チェック項目**:
|
|
157
|
-
|
|
158
|
-
- [ ] イテレーションゴール(目的・達成条件)が明確に記述されている
|
|
159
|
-
- [ ] 含まれる全ストーリーがゴールの達成に寄与している(ゴールと無関係なストーリーが混入していないか)
|
|
160
|
-
- [ ] ゴールの達成に必要なストーリーが欠落していないか
|
|
161
|
-
- [ ] ストーリー間の依存関係が識別され、実装順序に反映されている
|
|
162
|
-
- [ ] 設計セクション(ドメインモデル・データモデル・UI)がストーリーの受入基準を満たすに十分な内容か
|
|
163
|
-
- [ ] タスク分割がストーリーの受入基準をすべてカバーしている
|
|
164
|
-
- [ ] 見積もり(ストーリーポイント)の合計がチームのベロシティと整合しているか
|
|
165
|
-
- [ ] 前イテレーションからの持ち越し事項が反映されているか
|
|
166
|
-
|
|
167
|
-
**よくある不整合**:
|
|
168
|
-
|
|
169
|
-
- ゴールが抽象的すぎて達成条件が判断できない(例: 「航路管理機能を改善する」→ 具体的な完了基準がない)
|
|
170
|
-
- ゴールに対して過剰なストーリーが含まれている(スコープクリープ)
|
|
171
|
-
- 設計セクションの内容がストーリーの一部しかカバーしていない
|
|
172
|
-
- タスク分割が設計セクションと対応していない(設計にあるがタスクにない、またはその逆)
|
|
173
|
-
- ベロシティを超えるポイントが計画されている
|
|
174
|
-
|
|
175
|
-
### ステップ 8: 過去レビュー指摘事項との整合性
|
|
176
|
-
|
|
177
|
-
`docs/review/` 内の最新レビューファイルを確認し、前イテレーションで発見された指摘事項が今回の計画に適切に反映されているかを検証する。コードレビュー(`*_review_*.md`)・UI/UX レビュー(`*_uiux_review_*.md`)・分析レビュー(`*_review_*.md`)のいずれも対象とする。
|
|
178
|
-
|
|
179
|
-
**チェック項目**:
|
|
180
|
-
|
|
181
|
-
- [ ] `docs/review/index.md` で最新のレビューファイルを特定している
|
|
182
|
-
- [ ] 高優先度(「高」)の指摘事項がストーリーまたはタスクとして計画に含まれているか、含まれない場合は対応方針(許容 / 保留)が計画に明記されているか
|
|
183
|
-
- [ ] 中優先度(「中」)の指摘事項について、対応するストーリー / タスク / 対応方針が計画に記載されているか
|
|
184
|
-
- [ ] 前イテレーションの「IT2 対応方針」「次のステップ」「持ち越し事項」として明記された指摘が計画に引き継がれているか
|
|
185
|
-
- [ ] レビューで発見された受入基準の不整合(未実装フィールド等)が、当該ストーリーの受入基準の修正として反映されているか
|
|
186
|
-
- [ ] 技術的負債(アクセシビリティ違反、バリデーション仕様乖離等)の解消が計画に含まれているか
|
|
187
|
-
|
|
188
|
-
**確認対象レビューファイルの特定方法**:
|
|
189
|
-
|
|
190
|
-
1. `docs/review/index.md` のレビュー一覧テーブルを確認する
|
|
191
|
-
2. 今回計画するイテレーション番号の直前イテレーションに対応するレビューファイルを抽出する
|
|
192
|
-
3. 複数のレビュー種別(コードレビュー + UI/UX レビュー)がある場合はすべて確認する
|
|
193
|
-
|
|
194
|
-
**よくある不整合**:
|
|
195
|
-
|
|
196
|
-
- 高優先度の指摘が計画に含まれておらず、対応方針の記載もない(暗黙の未対応)
|
|
197
|
-
- 前イテレーションで「IT(N+1) 対応」と明記された指摘が、IT(N+1) の計画に含まれていない
|
|
198
|
-
- 受入基準の修正が必要な指摘(例: 未実装フィールド、仕様乖離)が設計セクションに反映されていない
|
|
199
|
-
- レビューで指摘された UI の日本語化・バリデーション修正がタスクとして計画されていない
|
|
200
|
-
|
|
201
|
-
## 検証結果の報告
|
|
202
|
-
|
|
203
|
-
検証完了後、以下の形式で報告する。
|
|
204
|
-
|
|
205
|
-
```markdown
|
|
206
|
-
## 整合性検証結果
|
|
207
|
-
|
|
208
|
-
### 検証対象
|
|
209
|
-
- イテレーション計画: `docs/development/iteration_plan-N.md`
|
|
210
|
-
|
|
211
|
-
### 検証結果サマリー
|
|
212
|
-
|
|
213
|
-
| ステップ | 検証対象 | 結果 | 不整合件数 |
|
|
214
|
-
|---------|---------|------|-----------|
|
|
215
|
-
| 1 | テンプレートフォーマット | OK / NG | N 件 |
|
|
216
|
-
| 2 | ユーザーストーリー | OK / NG | N 件 |
|
|
217
|
-
| 3 | ドメインモデル | OK / NG | N 件 |
|
|
218
|
-
| 4 | データモデル | OK / NG | N 件 |
|
|
219
|
-
| 5 | UI 設計(ビュー) | OK / NG | N 件 |
|
|
220
|
-
| 6 | UI 設計(インタラクション) | OK / NG | N 件 |
|
|
221
|
-
| 7 | ゴールの整合性 | OK / NG | N 件 |
|
|
222
|
-
| 8 | 過去レビュー指摘事項 | OK / NG | N 件 |
|
|
223
|
-
|
|
224
|
-
### 不整合一覧(NG の場合のみ)
|
|
225
|
-
|
|
226
|
-
#### ステップ N: 〇〇との不整合
|
|
227
|
-
|
|
228
|
-
| # | 不整合内容 | 計画の記述 | 正しい記述(ドキュメント準拠) | 修正要否 |
|
|
229
|
-
|---|----------|-----------|---------------------------|---------|
|
|
230
|
-
| 1 | ... | ... | ... | 要修正 |
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## 注意事項
|
|
234
|
-
|
|
235
|
-
- 検証は計画作成直後に実施する(開発着手前に不整合を解消する)
|
|
236
|
-
- 既存ドキュメントへの反映が必要な変更点は、イテレーション計画内に「注」として明記する
|
|
237
|
-
- イテレーション完了時に、注記された変更点を各設計ドキュメントに反映する
|
|
238
|
-
- 不整合を発見した場合、イテレーション計画側を設計ドキュメントに合わせて修正する(設計ドキュメントが正)
|
|
1
|
+
---
|
|
2
|
+
name: validating-iteration-plan
|
|
3
|
+
description: イテレーション計画と上流設計ドキュメント群(ユーザーストーリー、ドメインモデル、データモデル、UI 設計)との整合性を検証する。「イテレーション計画を検証したい」「計画の整合性をチェックして」「イテレーション計画を作成した」「計画と設計ドキュメントの不整合を確認したい」といった場面で発動する。planning-releases でイテレーション計画を作成した直後にも積極的に使用すること。計画作成後に必ず本検証を実施することで、開発着手前にドキュメント間の不整合を検知・修正できる。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# イテレーション計画の整合性検証
|
|
7
|
+
|
|
8
|
+
イテレーション計画は複数の設計ドキュメントから情報を引用・参照するため、ドキュメント間の不整合がそのまま実装の不整合に直結する。計画作成後に本検証を実施し、開発着手前に不整合を検知・修正する。
|
|
9
|
+
|
|
10
|
+
## 検証対象ドキュメント
|
|
11
|
+
|
|
12
|
+
| # | 検証対象 | パス | 検証内容 |
|
|
13
|
+
|---|---------|------|---------|
|
|
14
|
+
| 1 | テンプレートフォーマット | `docs/template/イテレーション計画.md` | 見出し構成・必須セクション・表形式・コードブロック形式の一致 |
|
|
15
|
+
| 2 | ユーザーストーリー | `docs/requirements/user_story.md` | ストーリー ID・タイトル・アクター・受入基準の一致 |
|
|
16
|
+
| 3 | ドメインモデル | `docs/design/domain-model.md` | 集約・エンティティ・値オブジェクトの名称・構造・関連の一致 |
|
|
17
|
+
| 4 | データモデル | `docs/design/data-model.md` | テーブル名・カラム名・型・制約・命名規約の一致 |
|
|
18
|
+
| 5 | UI 設計(ビュー) | `docs/design/ui_design.md` | ワイヤーフレーム構造・ナビバー形式・テーブル表記・URL パスの一致 |
|
|
19
|
+
| 6 | UI 設計(インタラクション) | `docs/design/ui_design.md` | 画面遷移・htmx パターン・PRG パターン・エラー処理・フィードバックメッセージの一致 |
|
|
20
|
+
| 7 | ゴールの整合性 | イテレーション計画全体 | ゴール・ストーリー・設計・タスク・見積もりの内部整合性 |
|
|
21
|
+
| 8 | 過去レビュー指摘事項 | `docs/review/` 内の最新レビューファイル | 高・中優先度の指摘がストーリーまたはタスクとして計画に反映されているか |
|
|
22
|
+
|
|
23
|
+
## 検証手順
|
|
24
|
+
|
|
25
|
+
8 ステップを順に実行する。各ステップは並列実行も可能。不整合を発見した場合はイテレーション計画を修正し、変更点を注記する。
|
|
26
|
+
|
|
27
|
+
### ステップ 1: テンプレートフォーマットとの整合性
|
|
28
|
+
|
|
29
|
+
イテレーション計画全体が `docs/template/イテレーション計画.md` のフォーマットに従っているかを確認する。以降の内容整合性チェックに入る前に、見出し構成・必須セクション・表形式・コードブロック形式がテンプレートから逸脱していないことを検証する。
|
|
30
|
+
|
|
31
|
+
**チェック項目**:
|
|
32
|
+
|
|
33
|
+
- [ ] 文書タイトルが `# イテレーション X 計画` 形式になっている
|
|
34
|
+
- [ ] テンプレートの主要セクション(概要、ゴール、ユーザーストーリー、スケジュール、設計、リスクと対策、完了条件、更新履歴、関連ドキュメント)が揃っている
|
|
35
|
+
- [ ] 各セクションの見出しレベルがテンプレートと一致している
|
|
36
|
+
- [ ] 概要、対象ストーリー、タスク、リスク、更新履歴などの表形式がテンプレートの列構成に従っている
|
|
37
|
+
- [ ] `mermaid`、`plantuml`、`prisma` などのコードブロック種別がテンプレートと一致している
|
|
38
|
+
- [ ] 完了条件に `Definition of Done` と `デモ項目` が含まれている
|
|
39
|
+
- [ ] 関連ドキュメント節に最低限の参照先が記載されている
|
|
40
|
+
|
|
41
|
+
**よくある不整合**:
|
|
42
|
+
|
|
43
|
+
- テンプレート必須セクションの欠落(例: 「更新履歴」がない)
|
|
44
|
+
- 見出し名や階層の変更(例: 「ユーザーストーリー」ではなく独自見出しを使用)
|
|
45
|
+
- 表の列不足や列名変更
|
|
46
|
+
- コードブロックの種別未指定、またはテンプレートと異なる記法
|
|
47
|
+
|
|
48
|
+
### ステップ 2: ユーザーストーリーとの整合性
|
|
49
|
+
|
|
50
|
+
イテレーション計画の「ストーリー詳細」セクションと `user_story.md` を比較する。
|
|
51
|
+
|
|
52
|
+
**チェック項目**:
|
|
53
|
+
|
|
54
|
+
- [ ] ストーリー ID(US番号)が一致している
|
|
55
|
+
- [ ] ストーリータイトルが一致している
|
|
56
|
+
- [ ] アクター(「として」の部分)が一致している
|
|
57
|
+
- [ ] ストーリー文(「したい」「なぜなら」の部分)が一致している(省略なく全文一致)
|
|
58
|
+
- [ ] 受入基準の項目数と内容が一致している
|
|
59
|
+
- [ ] 対応 UC 番号が一致している
|
|
60
|
+
|
|
61
|
+
**よくある不整合**:
|
|
62
|
+
|
|
63
|
+
- ストーリー文の一部省略(例: 「予約情報」-> 元は「予約情報(出発地・目的地・期限・貨物仕様)」)
|
|
64
|
+
- 受入基準の列挙が省略されている(例: 制約条件の具体名が省略)
|
|
65
|
+
|
|
66
|
+
### ステップ 3: ドメインモデルとの整合性
|
|
67
|
+
|
|
68
|
+
イテレーション計画の「設計 > ドメインモデル」セクションと `domain-model.md` を比較する。
|
|
69
|
+
|
|
70
|
+
**チェック項目**:
|
|
71
|
+
|
|
72
|
+
- [ ] 集約ルートの名称が一致している
|
|
73
|
+
- [ ] 値オブジェクトの名称・フィールドが一致している(例: `Schedule` vs `VoyageSchedule`)
|
|
74
|
+
- [ ] エンティティの名称・フィールドが一致している(例: `CarrierMovement` vs `VoyageSchedule`)
|
|
75
|
+
- [ ] 共有カーネル参照が正しい(例: `Location` を使うべき箇所で `String` になっていないか)
|
|
76
|
+
- [ ] 既存の集約構造を破壊する変更になっていないか
|
|
77
|
+
- [ ] 新規追加の場合、既存構造との関連が明記されているか
|
|
78
|
+
- [ ] domain-model.md への反映が必要な変更点が注記されているか
|
|
79
|
+
|
|
80
|
+
**よくある不整合**:
|
|
81
|
+
|
|
82
|
+
- 既存の値オブジェクト名と異なる名称を使用(例: `Schedule` -> `VoyageSchedule`)
|
|
83
|
+
- 既存の集約構造(親子関係)を無視した新規モデル設計
|
|
84
|
+
- 共有カーネル(`Location`)を参照せず、直接 `String` で locode を保持
|
|
85
|
+
|
|
86
|
+
### ステップ 4: データモデルとの整合性
|
|
87
|
+
|
|
88
|
+
イテレーション計画の「設計 > データモデル」セクションと `data-model.md` を比較する。
|
|
89
|
+
|
|
90
|
+
**チェック項目**:
|
|
91
|
+
|
|
92
|
+
- [ ] テーブル名の単数形/複数形が data-model.md の規約と一致している
|
|
93
|
+
- [ ] PK 設計が一致している(サロゲートキー `BIGSERIAL` + 業務キー `UK` の規約)
|
|
94
|
+
- [ ] FK の参照先がサロゲートキー(`id`)を参照している(業務キー直接参照になっていないか)
|
|
95
|
+
- [ ] カラム名が一致している(例: `departure_location_unlocode` vs `departure_location`)
|
|
96
|
+
- [ ] データ型が一致している(例: `TIMESTAMP` vs `DATE`)
|
|
97
|
+
- [ ] 順序カラム名が一致している(例: `seq_number` vs `sequence_order`)
|
|
98
|
+
- [ ] 監査カラム(`created_at`・`updated_at`)が含まれている
|
|
99
|
+
- [ ] DB 構文が一致している(例: `BIGSERIAL` vs `AUTO_INCREMENT`)
|
|
100
|
+
- [ ] 既存テーブルの拡張か新規テーブルかが明確に区別されている
|
|
101
|
+
- [ ] 新規テーブルの場合、既存テーブルとの関係が既存の設計と整合しているか
|
|
102
|
+
|
|
103
|
+
**よくある不整合**:
|
|
104
|
+
|
|
105
|
+
- テーブル名が複数形(`voyages`)-> data-model.md は単数形(`voyage`)
|
|
106
|
+
- PK が業務キー直接(`voyage_number PRIMARY KEY`)-> 規約はサロゲートキー + UK
|
|
107
|
+
- FK が業務キー参照(`REFERENCES voyages(voyage_number)`)-> 規約は `voyage.id` 参照
|
|
108
|
+
- PostgreSQL 構文(`BIGSERIAL`)と MySQL 構文(`AUTO_INCREMENT`)の混在
|
|
109
|
+
|
|
110
|
+
### ステップ 5: UI 設計(ビュー)との整合性
|
|
111
|
+
|
|
112
|
+
イテレーション計画の「設計 > ユーザーインターフェース > ビュー」セクションと `ui_design.md` を比較する。
|
|
113
|
+
|
|
114
|
+
**チェック項目**:
|
|
115
|
+
|
|
116
|
+
- [ ] ナビバー構造が `{/ <b>CargoTracker</b> | メニュー... | [ログアウト] }` 形式と一致している
|
|
117
|
+
- [ ] テーブルヘッダー表記が `**太字**` 形式と一致している(`^カレット^` 形式になっていないか)
|
|
118
|
+
- [ ] URL パスが画面一覧の規約と一致している
|
|
119
|
+
- [ ] 新規画面の画面一覧エントリが定義されている
|
|
120
|
+
- [ ] 既存画面の拡張の場合、拡張箇所が明確に区別されている
|
|
121
|
+
- [ ] 検索フォームのレイアウトが既存画面と一致している
|
|
122
|
+
- [ ] ボタン配置・ラベルが既存画面のパターンと一致している
|
|
123
|
+
|
|
124
|
+
**よくある不整合**:
|
|
125
|
+
|
|
126
|
+
- 独自のナビバー構造を使用
|
|
127
|
+
- テーブルヘッダーの表記形式が異なる
|
|
128
|
+
- URL パスが未定義
|
|
129
|
+
- 既存画面との関係(拡張 vs 新規)が不明確
|
|
130
|
+
|
|
131
|
+
### ステップ 6: UI 設計(インタラクション)との整合性
|
|
132
|
+
|
|
133
|
+
イテレーション計画の「設計 > ユーザーインターフェース > インタラクション」セクションと `ui_design.md` の画面遷移図・htmx パターン・フィードバック規約を比較する。
|
|
134
|
+
|
|
135
|
+
**チェック項目**:
|
|
136
|
+
|
|
137
|
+
- [ ] 画面遷移図に全画面の state が定義されている(URL パス・説明テキスト付き)
|
|
138
|
+
- [ ] バリデーションエラーの自己ループ遷移が全フォーム画面に定義されている
|
|
139
|
+
- [ ] 遷移方式(GET / PRG)が各遷移に明記されている
|
|
140
|
+
- [ ] 既存の state(航路一覧等)との遷移関係が定義されている
|
|
141
|
+
- [ ] htmx パターン(`hx-get`/`hx-post`・`hx-target`・`hx-swap`)が定義されている
|
|
142
|
+
- [ ] フィードバックメッセージ(成功・警告・エラー)とスタイル(`alert-*`)が定義されている
|
|
143
|
+
- [ ] htmx エラーハンドリング(`htmx:responseError`)への対応が考慮されている
|
|
144
|
+
|
|
145
|
+
**よくある不整合**:
|
|
146
|
+
|
|
147
|
+
- バリデーションエラー自己ループ遷移の欠落
|
|
148
|
+
- htmx パターンの記述がない(画面遷移図のみで動的更新方式が不明)
|
|
149
|
+
- フィードバックメッセージの定義がない
|
|
150
|
+
- 既存画面 state との遷移関係が切断されている
|
|
151
|
+
|
|
152
|
+
### ステップ 7: ゴールの整合性(最終確認)
|
|
153
|
+
|
|
154
|
+
イテレーション計画全体を俯瞰し、イテレーションのゴールと各ストーリー・設計・タスクが一貫しているかを確認する。ステップ 1-6 がフォーマットおよび個別ドキュメントとの突合であるのに対し、本ステップは計画内部の論理的整合性を検証する最終関門である。
|
|
155
|
+
|
|
156
|
+
**チェック項目**:
|
|
157
|
+
|
|
158
|
+
- [ ] イテレーションゴール(目的・達成条件)が明確に記述されている
|
|
159
|
+
- [ ] 含まれる全ストーリーがゴールの達成に寄与している(ゴールと無関係なストーリーが混入していないか)
|
|
160
|
+
- [ ] ゴールの達成に必要なストーリーが欠落していないか
|
|
161
|
+
- [ ] ストーリー間の依存関係が識別され、実装順序に反映されている
|
|
162
|
+
- [ ] 設計セクション(ドメインモデル・データモデル・UI)がストーリーの受入基準を満たすに十分な内容か
|
|
163
|
+
- [ ] タスク分割がストーリーの受入基準をすべてカバーしている
|
|
164
|
+
- [ ] 見積もり(ストーリーポイント)の合計がチームのベロシティと整合しているか
|
|
165
|
+
- [ ] 前イテレーションからの持ち越し事項が反映されているか
|
|
166
|
+
|
|
167
|
+
**よくある不整合**:
|
|
168
|
+
|
|
169
|
+
- ゴールが抽象的すぎて達成条件が判断できない(例: 「航路管理機能を改善する」→ 具体的な完了基準がない)
|
|
170
|
+
- ゴールに対して過剰なストーリーが含まれている(スコープクリープ)
|
|
171
|
+
- 設計セクションの内容がストーリーの一部しかカバーしていない
|
|
172
|
+
- タスク分割が設計セクションと対応していない(設計にあるがタスクにない、またはその逆)
|
|
173
|
+
- ベロシティを超えるポイントが計画されている
|
|
174
|
+
|
|
175
|
+
### ステップ 8: 過去レビュー指摘事項との整合性
|
|
176
|
+
|
|
177
|
+
`docs/review/` 内の最新レビューファイルを確認し、前イテレーションで発見された指摘事項が今回の計画に適切に反映されているかを検証する。コードレビュー(`*_review_*.md`)・UI/UX レビュー(`*_uiux_review_*.md`)・分析レビュー(`*_review_*.md`)のいずれも対象とする。
|
|
178
|
+
|
|
179
|
+
**チェック項目**:
|
|
180
|
+
|
|
181
|
+
- [ ] `docs/review/index.md` で最新のレビューファイルを特定している
|
|
182
|
+
- [ ] 高優先度(「高」)の指摘事項がストーリーまたはタスクとして計画に含まれているか、含まれない場合は対応方針(許容 / 保留)が計画に明記されているか
|
|
183
|
+
- [ ] 中優先度(「中」)の指摘事項について、対応するストーリー / タスク / 対応方針が計画に記載されているか
|
|
184
|
+
- [ ] 前イテレーションの「IT2 対応方針」「次のステップ」「持ち越し事項」として明記された指摘が計画に引き継がれているか
|
|
185
|
+
- [ ] レビューで発見された受入基準の不整合(未実装フィールド等)が、当該ストーリーの受入基準の修正として反映されているか
|
|
186
|
+
- [ ] 技術的負債(アクセシビリティ違反、バリデーション仕様乖離等)の解消が計画に含まれているか
|
|
187
|
+
|
|
188
|
+
**確認対象レビューファイルの特定方法**:
|
|
189
|
+
|
|
190
|
+
1. `docs/review/index.md` のレビュー一覧テーブルを確認する
|
|
191
|
+
2. 今回計画するイテレーション番号の直前イテレーションに対応するレビューファイルを抽出する
|
|
192
|
+
3. 複数のレビュー種別(コードレビュー + UI/UX レビュー)がある場合はすべて確認する
|
|
193
|
+
|
|
194
|
+
**よくある不整合**:
|
|
195
|
+
|
|
196
|
+
- 高優先度の指摘が計画に含まれておらず、対応方針の記載もない(暗黙の未対応)
|
|
197
|
+
- 前イテレーションで「IT(N+1) 対応」と明記された指摘が、IT(N+1) の計画に含まれていない
|
|
198
|
+
- 受入基準の修正が必要な指摘(例: 未実装フィールド、仕様乖離)が設計セクションに反映されていない
|
|
199
|
+
- レビューで指摘された UI の日本語化・バリデーション修正がタスクとして計画されていない
|
|
200
|
+
|
|
201
|
+
## 検証結果の報告
|
|
202
|
+
|
|
203
|
+
検証完了後、以下の形式で報告する。
|
|
204
|
+
|
|
205
|
+
```markdown
|
|
206
|
+
## 整合性検証結果
|
|
207
|
+
|
|
208
|
+
### 検証対象
|
|
209
|
+
- イテレーション計画: `docs/development/iteration_plan-N.md`
|
|
210
|
+
|
|
211
|
+
### 検証結果サマリー
|
|
212
|
+
|
|
213
|
+
| ステップ | 検証対象 | 結果 | 不整合件数 |
|
|
214
|
+
|---------|---------|------|-----------|
|
|
215
|
+
| 1 | テンプレートフォーマット | OK / NG | N 件 |
|
|
216
|
+
| 2 | ユーザーストーリー | OK / NG | N 件 |
|
|
217
|
+
| 3 | ドメインモデル | OK / NG | N 件 |
|
|
218
|
+
| 4 | データモデル | OK / NG | N 件 |
|
|
219
|
+
| 5 | UI 設計(ビュー) | OK / NG | N 件 |
|
|
220
|
+
| 6 | UI 設計(インタラクション) | OK / NG | N 件 |
|
|
221
|
+
| 7 | ゴールの整合性 | OK / NG | N 件 |
|
|
222
|
+
| 8 | 過去レビュー指摘事項 | OK / NG | N 件 |
|
|
223
|
+
|
|
224
|
+
### 不整合一覧(NG の場合のみ)
|
|
225
|
+
|
|
226
|
+
#### ステップ N: 〇〇との不整合
|
|
227
|
+
|
|
228
|
+
| # | 不整合内容 | 計画の記述 | 正しい記述(ドキュメント準拠) | 修正要否 |
|
|
229
|
+
|---|----------|-----------|---------------------------|---------|
|
|
230
|
+
| 1 | ... | ... | ... | 要修正 |
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## 注意事項
|
|
234
|
+
|
|
235
|
+
- 検証は計画作成直後に実施する(開発着手前に不整合を解消する)
|
|
236
|
+
- 既存ドキュメントへの反映が必要な変更点は、イテレーション計画内に「注」として明記する
|
|
237
|
+
- イテレーション完了時に、注記された変更点を各設計ドキュメントに反映する
|
|
238
|
+
- 不整合を発見した場合、イテレーション計画側を設計ドキュメントに合わせて修正する(設計ドキュメントが正)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validating-operating-setup
|
|
3
|
+
description: 環境セットアップ手順書 (docs/operation/*.md) に書かれた各ステップが現在のプロジェクトに反映されているかを監査し、未対応・部分対応の項目とその推奨対処を表形式で報告する。手順書を作っただけで実施が放置されがちな問題を防ぐためのスキル。「環境セットアップ確認」「手順書実施状況」「アプリケーション開発環境セットアップ手順書の内容を全て実施しているか確認」のような依頼や、operating-setup スキル実行後の完了確認、IT 着手前の前提条件チェックで自動的に発動する。手順書監査・進捗確認・ギャップ分析・着手前チェックリスト・準備状況レビューといった文脈で必ず使用する。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 環境セットアップ手順書の実施状況監査
|
|
7
|
+
|
|
8
|
+
`operating-setup` で生成された手順書 (`docs/operation/*.md`) の各ステップが、実際のプロジェクト状態に反映されているかを章ごとに監査する。
|
|
9
|
+
|
|
10
|
+
手順書は「**書いた瞬間に古くなる**」性質を持つため、定期的に **手順書とプロジェクトの整合性** をチェックしないと、新メンバーが古い手順を信じてハマる、IT 着手時に前提条件が未整備で詰まる、CI で「設定したはず」が動いていない、といった問題が起こる。このスキルは「何が出来ていて、何が出来ていないか」を **客観的に証拠つきで** 突きつけることで、こうした腐敗を早期検知する。
|
|
11
|
+
|
|
12
|
+
## 入力
|
|
13
|
+
|
|
14
|
+
| 入力 | 例 |
|
|
15
|
+
| :--- | :--- |
|
|
16
|
+
| 監査対象の手順書 | `docs/operation/アプリケーション開発環境セットアップ手順書.md` |
|
|
17
|
+
| (省略時) | プロジェクトの現フェーズに応じた最新手順書を推測。複数候補があるときはユーザーに確認 |
|
|
18
|
+
|
|
19
|
+
## 出力
|
|
20
|
+
|
|
21
|
+
以下を **必ずこの順序で** 出力する。
|
|
22
|
+
|
|
23
|
+
1. **章ごとのチェックリスト表** — 手順書の全章 (1〜N) を網羅。判定列に `✅` / `⚠️` / `❌` を入れ、備考列に確認コマンドや検出結果を書く
|
|
24
|
+
2. **サマリ表** — 状態別の件数
|
|
25
|
+
3. **分類別の推奨対処** — ❌ と ⚠️ を以下のバケツに分類:
|
|
26
|
+
- **A. 今すぐ対応可能 (運用補強)** — シェル一発・設定ファイル追加で終わるもの
|
|
27
|
+
- **B. 実装フェーズ (IT1 等) で対応** — コード実装と一体で動くもの
|
|
28
|
+
- **C. 開発体験向上ツール (任意)** — あると良いが必須でないもの
|
|
29
|
+
- **D. 後フェーズで対応** — CI/CD・本番環境など、別スキル (`operating-cicd` 等) の領域
|
|
30
|
+
4. **着手提案** — どこから手を付けるか 1〜2 行で提案し、ユーザーの GO サインを待つ
|
|
31
|
+
|
|
32
|
+
## 監査の進め方
|
|
33
|
+
|
|
34
|
+
### 1. 手順書を全文読む
|
|
35
|
+
|
|
36
|
+
省略せず最初から最後まで読む。章番号と項目名を全て把握する。
|
|
37
|
+
|
|
38
|
+
### 2. 章ごとに「何を見れば真偽が判定できるか」を考える
|
|
39
|
+
|
|
40
|
+
手順書の記述は **意図の宣言** にすぎないので、コードベース上の **証拠** を探す。証拠の取り方は以下のパターンに分類できる:
|
|
41
|
+
|
|
42
|
+
| 章の種類 | 確認方法 | 例 |
|
|
43
|
+
| :--- | :--- | :--- |
|
|
44
|
+
| ツールのインストール要件 | `command --version` を順に実行 | `ghc --version`, `dbmate --version` |
|
|
45
|
+
| 設定ファイルの存在 | `ls path/to/file` | `.husky/pre-commit`, `weeder.toml` |
|
|
46
|
+
| package.json scripts | `grep \"name\":` で網羅 | `lint`, `test:tdd` |
|
|
47
|
+
| Docker サービス定義 | `docker-compose.yml` を読み内容を照合 | postgres / adminer / mailhog |
|
|
48
|
+
| ディレクトリ構造 | `ls` / `find -maxdepth N` | `src/Cargotracker/Booking/Domain/...` |
|
|
49
|
+
| CI/CD ワークフロー | `ls .github/workflows/` | `ci.yml`, `cd-staging.yml` |
|
|
50
|
+
| ドキュメント記載のみの規約 | 内容を読み「ドキュメントに記載済」を ✅ とする | 命名規則、Git 規約 |
|
|
51
|
+
|
|
52
|
+
並列で確認できるものは 1 つの Bash 呼び出しに詰めると速い。
|
|
53
|
+
|
|
54
|
+
### 3. 判定基準
|
|
55
|
+
|
|
56
|
+
| 記号 | 判定基準 |
|
|
57
|
+
| :--- | :--- |
|
|
58
|
+
| ✅ 完了 | 手順書の記述どおりに揃っている。コマンド成功 / ファイル存在 / scripts に記載あり |
|
|
59
|
+
| ⚠️ 部分対応 / IT で補完 | 「スタブはあるが本実装はこれから」「コマンドは動くがテスト本体は IT1 で追加」など、骨格はあるが中身は実装フェーズで足す類 |
|
|
60
|
+
| ❌ 未対応 | 手順書に書いてあるが存在しない / 動かない |
|
|
61
|
+
|
|
62
|
+
迷ったら **「新メンバーがこの手順書だけ見て進めた時に詰まるか?」** を基準にする。詰まるなら ❌、詰まらないなら ✅/⚠️。
|
|
63
|
+
|
|
64
|
+
### 4. 表の書式
|
|
65
|
+
|
|
66
|
+
章番号と章タイトルを左 2 列に保持し、内訳項目を行に展開する。
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
| 章 | 内容 | 状態 | 備考 |
|
|
70
|
+
| :--- | :--- | :--- | :--- |
|
|
71
|
+
| **1. 前提条件** | GHC 9.10.x | ❌ | `ghc` コマンド未配置 |
|
|
72
|
+
| | Stack 3.x | ✅ | 3.11.1 |
|
|
73
|
+
| | Cabal 3.12.x | ❌ | 未インストール |
|
|
74
|
+
| **2. プロジェクト取得** | `npm install` 実施 | ✅ | node_modules 存在 |
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
備考列には **証拠** (バージョン番号、ファイルパス、検出結果) を入れる。「OK」だけだと後から見て情報がなくなる。
|
|
78
|
+
|
|
79
|
+
### 5. サマリ表
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
| ステータス | 件数 |
|
|
83
|
+
| :--- | ---: |
|
|
84
|
+
| ✅ 完了 | N |
|
|
85
|
+
| ⚠️ 部分対応 / IT で補完 | N |
|
|
86
|
+
| ❌ 未対応 | N |
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 6. 分類別の推奨対処
|
|
90
|
+
|
|
91
|
+
A〜D の各バケツに、ID 付き (A1, A2, ...) で項目を並べる。各項目には **アクション** (具体的なコマンドや作業内容) を書く。
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
### A. 今すぐ対応可能 (運用補強)
|
|
95
|
+
|
|
96
|
+
| # | 項目 | 推奨アクション |
|
|
97
|
+
| :--- | :--- | :--- |
|
|
98
|
+
| A1 | `dbmate` インストール | `brew install dbmate` |
|
|
99
|
+
| A2 | husky + lint-staged | `npm i -D husky lint-staged && npx husky init` |
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 7. 着手提案
|
|
103
|
+
|
|
104
|
+
最後に 1〜2 行で「A 全部やる」「A1〜A3 だけ先に着手」のような選択肢を提示する。**ユーザーが `y` や 「A 全部やって」 のような短い返答で動けるようにする**。
|
|
105
|
+
|
|
106
|
+
## 注意事項
|
|
107
|
+
|
|
108
|
+
- **手順書を改変しない** — このスキルは「現状を手順書に合わせる」のが仕事。手順書の方を現状に合わせて編集するのは別タスク (operating-docs)
|
|
109
|
+
- **「手順書に書かれていないこと」は対象外** — スコープを広げると報告がボヤけるため、章番号にない項目は無視する。ただし手順書に欠落がある場合は最後に「手順書側の改善提案」として 1 セクション設けて構わない
|
|
110
|
+
- **証拠の収集は並列化** — Bash 呼び出しは並列実行できる。複数の `command --version` は 1 つのコマンドにまとめて出力する
|
|
111
|
+
- **手順書のバージョンアップ時に再実行する想定** — 章番号や項目が変わっても、このスキルの進め方は変わらない
|
|
112
|
+
|
|
113
|
+
## 関連スキル
|
|
114
|
+
|
|
115
|
+
- `operating-setup` — 監査対象の手順書を生成する側のスキル
|
|
116
|
+
- `operating-docs` — 手順書側の改善が必要になった場合
|
|
117
|
+
- `operating-script` — 手順書で参照される Gulp タスクの実装
|
|
118
|
+
- `tracking-progress` — プロジェクト全体の進捗確認 (より広い視点)
|