@phuc1403/musketeer 0.3.0 → 0.5.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.
Files changed (114) hide show
  1. package/README.md +49 -49
  2. package/manifest.json +301 -253
  3. package/package.json +1 -1
  4. package/template/.claude/hooks/block-unsafe-adr-title.cjs +70 -0
  5. package/template/.claude/hooks/init-adr-dir.cjs +110 -0
  6. package/template/.claude/hooks/inject-adr-env.cjs +82 -0
  7. package/template/.claude/hooks/lib/characteristics/checker.cjs +357 -0
  8. package/template/.claude/hooks/sync-adr-toc.cjs +111 -0
  9. package/template/.claude/hooks/validate-characteristics-hook.cjs +66 -0
  10. package/template/.claude/hooks/warn-missing-characteristics.cjs +32 -0
  11. package/template/.claude/skills/adr-writer/SKILL.md +24 -101
  12. package/template/.claude/skills/adr-writer/references/adr-example.md +0 -5
  13. package/template/.claude/skills/adr-writer/references/adr-template.md +0 -12
  14. package/template/.claude/skills/architecture-characteristic-writer/SKILL.md +197 -99
  15. package/template/.claude/skills/architecture-characteristic-writer/assets/worksheet-template.md +18 -29
  16. package/template/.claude/skills/architecture-characteristic-writer/references/characteristics-catalog.md +22 -88
  17. package/template/.claude/skills/architecture-characteristic-writer/scripts/ranking-table.cjs +171 -0
  18. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  19. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/Debug/net10.0/__SolutionName__.Api.AssemblyInfo.cs +22 -0
  20. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/Debug/net10.0/__SolutionName__.Api.AssemblyInfoInputs.cache +1 -0
  21. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/Debug/net10.0/__SolutionName__.Api.GeneratedMSBuildEditorConfig.editorconfig +23 -0
  22. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/Debug/net10.0/__SolutionName__.Api.GlobalUsings.g.cs +17 -0
  23. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/Debug/net10.0/__SolutionName__.Api.assets.cache +0 -0
  24. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/__SolutionName__.Api.csproj.nuget.dgspec.json +1536 -0
  25. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/__SolutionName__.Api.csproj.nuget.g.props +16 -0
  26. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/__SolutionName__.Api.csproj.nuget.g.targets +2 -0
  27. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/project.assets.json +559 -0
  28. package/template/dotnet-scaffold/src/__SolutionName__.Api/obj/project.nuget.cache +8 -0
  29. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  30. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/Debug/net10.0/__SolutionName__.Application.AssemblyInfo.cs +22 -0
  31. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/Debug/net10.0/__SolutionName__.Application.AssemblyInfoInputs.cache +1 -0
  32. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/Debug/net10.0/__SolutionName__.Application.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  33. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/Debug/net10.0/__SolutionName__.Application.GlobalUsings.g.cs +8 -0
  34. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/Debug/net10.0/__SolutionName__.Application.assets.cache +0 -0
  35. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/__SolutionName__.Application.csproj.nuget.dgspec.json +690 -0
  36. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/__SolutionName__.Application.csproj.nuget.g.props +16 -0
  37. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/__SolutionName__.Application.csproj.nuget.g.targets +2 -0
  38. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/project.assets.json +376 -0
  39. package/template/dotnet-scaffold/src/__SolutionName__.Application/obj/project.nuget.cache +8 -0
  40. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  41. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/Debug/net10.0/__SolutionName__.Domain.AssemblyInfo.cs +22 -0
  42. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/Debug/net10.0/__SolutionName__.Domain.AssemblyInfoInputs.cache +1 -0
  43. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/Debug/net10.0/__SolutionName__.Domain.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  44. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/Debug/net10.0/__SolutionName__.Domain.GlobalUsings.g.cs +8 -0
  45. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/Debug/net10.0/__SolutionName__.Domain.assets.cache +0 -0
  46. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/__SolutionName__.Domain.csproj.nuget.dgspec.json +347 -0
  47. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/__SolutionName__.Domain.csproj.nuget.g.props +16 -0
  48. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/__SolutionName__.Domain.csproj.nuget.g.targets +2 -0
  49. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/project.assets.json +353 -0
  50. package/template/dotnet-scaffold/src/__SolutionName__.Domain/obj/project.nuget.cache +8 -0
  51. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  52. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/__SolutionName__.Infrastructure.AssemblyInfo.cs +22 -0
  53. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/__SolutionName__.Infrastructure.AssemblyInfoInputs.cache +1 -0
  54. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/__SolutionName__.Infrastructure.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  55. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/__SolutionName__.Infrastructure.GlobalUsings.g.cs +8 -0
  56. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/__SolutionName__.Infrastructure.assets.cache +0 -0
  57. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/Debug/net10.0/__SolutionName__.Infrastructure.csproj.AssemblyReference.cache +0 -0
  58. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/__SolutionName__.Infrastructure.csproj.nuget.dgspec.json +1047 -0
  59. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/__SolutionName__.Infrastructure.csproj.nuget.g.props +16 -0
  60. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/__SolutionName__.Infrastructure.csproj.nuget.g.targets +7 -0
  61. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/project.assets.json +858 -0
  62. package/template/dotnet-scaffold/src/__SolutionName__.Infrastructure/obj/project.nuget.cache +17 -0
  63. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/bin/Debug/net10.0/.msCoverageSourceRootsMapping___SolutionName__.Api.Tests +0 -0
  64. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  65. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/__SolutionName__.Api.Tests.AssemblyInfo.cs +22 -0
  66. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/__SolutionName__.Api.Tests.AssemblyInfoInputs.cache +1 -0
  67. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/__SolutionName__.Api.Tests.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  68. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/__SolutionName__.Api.Tests.GlobalUsings.g.cs +9 -0
  69. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/__SolutionName__.Api.Tests.assets.cache +0 -0
  70. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/Debug/net10.0/__SolutionName__.Api.Tests.csproj.AssemblyReference.cache +0 -0
  71. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/__SolutionName__.Api.Tests.csproj.nuget.dgspec.json +1908 -0
  72. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/__SolutionName__.Api.Tests.csproj.nuget.g.props +27 -0
  73. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/__SolutionName__.Api.Tests.csproj.nuget.g.targets +16 -0
  74. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/project.assets.json +3283 -0
  75. package/template/dotnet-scaffold/tests/__SolutionName__.Api.Tests/obj/project.nuget.cache +60 -0
  76. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/bin/Debug/net10.0/.msCoverageSourceRootsMapping___SolutionName__.Application.Tests +0 -0
  77. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  78. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/__SolutionName__.Application.Tests.AssemblyInfo.cs +22 -0
  79. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/__SolutionName__.Application.Tests.AssemblyInfoInputs.cache +1 -0
  80. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/__SolutionName__.Application.Tests.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  81. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/__SolutionName__.Application.Tests.GlobalUsings.g.cs +9 -0
  82. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/__SolutionName__.Application.Tests.assets.cache +0 -0
  83. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/Debug/net10.0/__SolutionName__.Application.Tests.csproj.AssemblyReference.cache +0 -0
  84. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/__SolutionName__.Application.Tests.csproj.nuget.dgspec.json +1055 -0
  85. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/__SolutionName__.Application.Tests.csproj.nuget.g.props +26 -0
  86. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/__SolutionName__.Application.Tests.csproj.nuget.g.targets +11 -0
  87. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/project.assets.json +1662 -0
  88. package/template/dotnet-scaffold/tests/__SolutionName__.Application.Tests/obj/project.nuget.cache +30 -0
  89. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/bin/Debug/net10.0/.msCoverageSourceRootsMapping___SolutionName__.Domain.Tests +0 -0
  90. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  91. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/__SolutionName__.Domain.Tests.AssemblyInfo.cs +22 -0
  92. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/__SolutionName__.Domain.Tests.AssemblyInfoInputs.cache +1 -0
  93. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/__SolutionName__.Domain.Tests.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  94. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/__SolutionName__.Domain.Tests.GlobalUsings.g.cs +9 -0
  95. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/__SolutionName__.Domain.Tests.assets.cache +0 -0
  96. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/Debug/net10.0/__SolutionName__.Domain.Tests.csproj.AssemblyReference.cache +0 -0
  97. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/__SolutionName__.Domain.Tests.csproj.nuget.dgspec.json +712 -0
  98. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/__SolutionName__.Domain.Tests.csproj.nuget.g.props +26 -0
  99. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/__SolutionName__.Domain.Tests.csproj.nuget.g.targets +11 -0
  100. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/project.assets.json +1644 -0
  101. package/template/dotnet-scaffold/tests/__SolutionName__.Domain.Tests/obj/project.nuget.cache +30 -0
  102. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/bin/Debug/net10.0/.msCoverageSourceRootsMapping___SolutionName__.Infrastructure.Tests +0 -0
  103. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +4 -0
  104. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/__SolutionName__.Infrastructure.Tests.AssemblyInfo.cs +22 -0
  105. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/__SolutionName__.Infrastructure.Tests.AssemblyInfoInputs.cache +1 -0
  106. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/__SolutionName__.Infrastructure.Tests.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  107. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/__SolutionName__.Infrastructure.Tests.GlobalUsings.g.cs +9 -0
  108. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/__SolutionName__.Infrastructure.Tests.assets.cache +0 -0
  109. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/Debug/net10.0/__SolutionName__.Infrastructure.Tests.csproj.AssemblyReference.cache +0 -0
  110. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/__SolutionName__.Infrastructure.Tests.csproj.nuget.dgspec.json +1412 -0
  111. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/__SolutionName__.Infrastructure.Tests.csproj.nuget.g.props +26 -0
  112. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/__SolutionName__.Infrastructure.Tests.csproj.nuget.g.targets +13 -0
  113. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/project.assets.json +2130 -0
  114. package/template/dotnet-scaffold/tests/__SolutionName__.Infrastructure.Tests/obj/project.nuget.cache +38 -0
package/README.md CHANGED
@@ -1,49 +1,49 @@
1
- # musketeer
2
-
3
- > Distributable custom Claude Code harness. One declarative command scaffolds a curated
4
- > **company** of **musketeers** (skills + agents + hooks) into any project's `./.claude/`.
5
-
6
- ## Install
7
-
8
- ```bash
9
- npm i -g @phuc1403/musketeer
10
- ```
11
-
12
- ## Use
13
-
14
- ```bash
15
- musketeer muster # self-update → pick company (multi-select) → refresh all selected skills to latest
16
- musketeer promote # update the musketeer CLI itself to the latest published version
17
- musketeer # show usage
18
- musketeer --help # show usage
19
- ```
20
-
21
- `musketeer muster` **self-updates first**: it pulls the latest published version (re-execing when behind),
22
- so the refresh always applies the newest template. Set `MUSKETEER_NO_SELF_UPDATE=1` to skip (offline / pinned).
23
-
24
- It is also **idempotent** and **force-updating**: the picker pre-checks your current company (from
25
- `.musketeer.json`); on confirm it **re-writes every selected musketeer's files to the latest template**
26
- (overwriting any local edits), removes newly-unchecked ones, regenerates `settings.json`, and auto-installs
27
- any missing prerequisites.
28
-
29
- `musketeer promote` upgrades the **CLI tool** itself (not your project's company): it checks the npm
30
- registry, and if a newer version exists, runs `npm i -g @phuc1403/musketeer@latest`. _muster = which
31
- musketeers are in this project; promote = upgrade the binary._
32
-
33
- ## Musketeers (v1)
34
-
35
- | Musketeer | Default in muster | What it adds |
36
- |-----------|-------------------|--------------|
37
- | **core** | always on (locked, hidden) | research, handoff, skill-creator, git (+ git-manager agent) · statusline, usage-context, format-json hooks |
38
- | **architecture** | off | adr-writer, architecture-characteristic-writer, context-map · CML validation hook |
39
- | **hallmark** | off | hallmark, hallmark-explore, hallmark-loop · auditor/explorer agents |
40
- | **code-review** | off | code-review skill + code-reviewer agent |
41
- | **dotnet** | off | tdd, knowledge-crunching · EF migration guard hook · always merges 4 quality-gate props into root `Directory.Build.props` (`MUSKETEER_SKIP_DOTNET_PROPS=1` to skip) · scaffolds a generic `src`/`tests` Clean Architecture skeleton when the project is blank |
42
- | **design-docs** | off | inject-design-docs SessionStart hook |
43
-
44
- The muster starts every musketeer **unselected**, except ones you already installed (pre-checked from
45
- `.musketeer.json`). **core** is always included and isn't shown as a toggle — it can't be removed.
46
-
47
- Vocabulary: **musketeer** = a selectable unit · **muster** = the picker · **company** = your recruited set.
48
-
49
- See [INSTALLATION.md](INSTALLATION.md) for prerequisites and auto-install behavior.
1
+ # musketeer
2
+
3
+ > Distributable custom Claude Code harness. One declarative command scaffolds a curated
4
+ > **company** of **musketeers** (skills + agents + hooks) into any project's `./.claude/`.
5
+
6
+ ## Install
7
+
8
+ ```bash
9
+ npm i -g @phuc1403/musketeer
10
+ ```
11
+
12
+ ## Use
13
+
14
+ ```bash
15
+ musketeer muster # self-update → pick company (multi-select) → refresh all selected skills to latest
16
+ musketeer promote # update the musketeer CLI itself to the latest published version
17
+ musketeer # show usage
18
+ musketeer --help # show usage
19
+ ```
20
+
21
+ `musketeer muster` **self-updates first**: it pulls the latest published version (re-execing when behind),
22
+ so the refresh always applies the newest template. Set `MUSKETEER_NO_SELF_UPDATE=1` to skip (offline / pinned).
23
+
24
+ It is also **idempotent** and **force-updating**: the picker pre-checks your current company (from
25
+ `.musketeer.json`); on confirm it **re-writes every selected musketeer's files to the latest template**
26
+ (overwriting any local edits), removes newly-unchecked ones, regenerates `settings.json`, and auto-installs
27
+ any missing prerequisites.
28
+
29
+ `musketeer promote` upgrades the **CLI tool** itself (not your project's company): it checks the npm
30
+ registry, and if a newer version exists, runs `npm i -g @phuc1403/musketeer@latest`. _muster = which
31
+ musketeers are in this project; promote = upgrade the binary._
32
+
33
+ ## Musketeers (v1)
34
+
35
+ | Musketeer | Default in muster | What it adds |
36
+ |-----------|-------------------|--------------|
37
+ | **core** | always on (locked, hidden) | research, handoff, skill-creator, git (+ git-manager agent) · statusline, usage-context, format-json hooks |
38
+ | **architecture** | off | adr-writer, architecture-characteristic-writer, context-map · CML validation hook |
39
+ | **hallmark** | off | hallmark, hallmark-explore, hallmark-loop · auditor/explorer agents |
40
+ | **code-review** | off | code-review skill + code-reviewer agent |
41
+ | **dotnet** | off | tdd, knowledge-crunching · EF migration guard hook · always merges 4 quality-gate props into root `Directory.Build.props` (`MUSKETEER_SKIP_DOTNET_PROPS=1` to skip) · scaffolds a generic `src`/`tests` Clean Architecture skeleton when the project is blank |
42
+ | **design-docs** | off | inject-design-docs SessionStart hook |
43
+
44
+ The muster starts every musketeer **unselected**, except ones you already installed (pre-checked from
45
+ `.musketeer.json`). **core** is always included and isn't shown as a toggle — it can't be removed.
46
+
47
+ Vocabulary: **musketeer** = a selectable unit · **muster** = the picker · **company** = your recruited set.
48
+
49
+ See [INSTALLATION.md](INSTALLATION.md) for prerequisites and auto-install behavior.