project-init 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. project_init/__init__.py +4 -0
  2. project_init/__main__.py +662 -0
  3. project_init/mcps.py +57 -0
  4. project_init/scaffold.py +374 -0
  5. project_init/templates/base/AGENTS.md.tmpl +50 -0
  6. project_init/templates/base/CLAUDE.md.tmpl +16 -0
  7. project_init/templates/base/CONTRIBUTING.md.tmpl +55 -0
  8. project_init/templates/base/GEMINI.md.tmpl +16 -0
  9. project_init/templates/base/LICENSE.tmpl +231 -0
  10. project_init/templates/base/SECURITY.md.tmpl +26 -0
  11. project_init/templates/base/docs/explanation/index.md +9 -0
  12. project_init/templates/base/docs/how-to/index.md +7 -0
  13. project_init/templates/base/docs/index.md.tmpl +20 -0
  14. project_init/templates/base/docs/reference/index.md +13 -0
  15. project_init/templates/base/docs/tutorials/index.md +7 -0
  16. project_init/templates/base/dot_claude/agents/README.md +30 -0
  17. project_init/templates/base/dot_claude/config.yaml.tmpl +31 -0
  18. project_init/templates/base/dot_claude/docs/README.md +26 -0
  19. project_init/templates/base/dot_claude/docs/adr/adr-001-memory-stack.md.tmpl +22 -0
  20. project_init/templates/base/dot_claude/docs/adr/adr-002-mcp-choices.md.tmpl +32 -0
  21. project_init/templates/base/dot_claude/docs/adr/adr-template.md +29 -0
  22. project_init/templates/base/dot_claude/docs/development/conventions.md.tmpl +31 -0
  23. project_init/templates/base/dot_claude/docs/development/testing.md +25 -0
  24. project_init/templates/base/dot_claude/docs/guides/developer-onboarding.md +110 -0
  25. project_init/templates/base/dot_claude/docs/guides/issue-metadata.md +27 -0
  26. project_init/templates/base/dot_claude/docs/guides/secrets.md +50 -0
  27. project_init/templates/base/dot_claude/docs/guides/using-memory.md +36 -0
  28. project_init/templates/base/dot_claude/hooks/README.md +15 -0
  29. project_init/templates/base/dot_claude/hooks/agent_guard_adapter.py.tmpl +64 -0
  30. project_init/templates/base/dot_claude/hooks/dag_workflow.py +610 -0
  31. project_init/templates/base/dot_claude/memory/MEMORY.md.tmpl +11 -0
  32. project_init/templates/base/dot_claude/memory/README.md +51 -0
  33. project_init/templates/base/dot_claude/memory/SCHEMA.md +52 -0
  34. project_init/templates/base/dot_claude/memory/feedback_conventions.md +11 -0
  35. project_init/templates/base/dot_claude/memory/project_context.md.tmpl +11 -0
  36. project_init/templates/base/dot_claude/memory/user_role.md +7 -0
  37. project_init/templates/base/dot_claude/project-init.md.tmpl +174 -0
  38. project_init/templates/base/dot_claude/rules/go.md +14 -0
  39. project_init/templates/base/dot_claude/rules/hooks.md +30 -0
  40. project_init/templates/base/dot_claude/rules/node.md +17 -0
  41. project_init/templates/base/dot_claude/rules/python.md +25 -0
  42. project_init/templates/base/dot_claude/scripts/README.md +15 -0
  43. project_init/templates/base/dot_claude/scripts/create_issue.sh +577 -0
  44. project_init/templates/base/dot_claude/scripts/create_nojira_pr.sh +3 -0
  45. project_init/templates/base/dot_claude/scripts/finish_pr.sh +3 -0
  46. project_init/templates/base/dot_claude/scripts/install_hooks.sh +55 -0
  47. project_init/templates/base/dot_claude/scripts/monitor_pr.sh +270 -0
  48. project_init/templates/base/dot_claude/scripts/promote_review.sh +3 -0
  49. project_init/templates/base/dot_claude/scripts/push_branch.sh +5 -0
  50. project_init/templates/base/dot_claude/scripts/push_wiki.sh +34 -0
  51. project_init/templates/base/dot_claude/scripts/setup_github.sh +219 -0
  52. project_init/templates/base/dot_claude/scripts/start_issue.sh +134 -0
  53. project_init/templates/base/dot_claude/settings.json.tmpl +83 -0
  54. project_init/templates/base/dot_claude/skills/README.md +12 -0
  55. project_init/templates/base/dot_claude/skills/plan/SKILL.md.tmpl +40 -0
  56. project_init/templates/base/dot_claude/vault/README.md +21 -0
  57. project_init/templates/base/dot_claude/vault/decisions/README.md +22 -0
  58. project_init/templates/base/dot_claude/vault/design/README.md +3 -0
  59. project_init/templates/base/dot_claude/vault/knowledge/README.md +5 -0
  60. project_init/templates/base/dot_claude/vault/sessions/README.md +5 -0
  61. project_init/templates/base/dot_devcontainer/devcontainer.json.tmpl +17 -0
  62. project_init/templates/base/dot_devcontainer/post-create.sh.tmpl +31 -0
  63. project_init/templates/base/dot_env.example.tmpl +13 -0
  64. project_init/templates/base/dot_github/CODEOWNERS.tmpl +12 -0
  65. project_init/templates/base/dot_github/ISSUE_TEMPLATE/bug.yml +98 -0
  66. project_init/templates/base/dot_github/ISSUE_TEMPLATE/chore.yml +82 -0
  67. project_init/templates/base/dot_github/ISSUE_TEMPLATE/config.yml +5 -0
  68. project_init/templates/base/dot_github/ISSUE_TEMPLATE/docs.yml +84 -0
  69. project_init/templates/base/dot_github/ISSUE_TEMPLATE/feature.yml +87 -0
  70. project_init/templates/base/dot_github/ISSUE_TEMPLATE/test.yml +90 -0
  71. project_init/templates/base/dot_github/copilot-instructions.md.tmpl +25 -0
  72. project_init/templates/base/dot_github/hooks/commit-msg +52 -0
  73. project_init/templates/base/dot_github/hooks/pre-commit +16 -0
  74. project_init/templates/base/dot_github/hooks/pre-push +51 -0
  75. project_init/templates/base/dot_github/pull_request_template.md +22 -0
  76. project_init/templates/base/dot_github/workflows/board-automation.yml +232 -0
  77. project_init/templates/base/dot_github/workflows/ci.yml.tmpl +204 -0
  78. project_init/templates/base/dot_github/workflows/docs.yml.tmpl +98 -0
  79. project_init/templates/base/dot_github/workflows/issue-validation.yml +72 -0
  80. project_init/templates/base/dot_github/workflows/review-status.yml +48 -0
  81. project_init/templates/base/dot_github/workflows/validate-pr.yml +103 -0
  82. project_init/templates/base/dot_gitignore.tmpl +41 -0
  83. project_init/templates/base/dot_golangci.yml.tmpl +20 -0
  84. project_init/templates/base/dot_vscode/extensions.json.tmpl +10 -0
  85. project_init/templates/base/dot_vscode/settings.json.tmpl +8 -0
  86. project_init/templates/base/eslint.config.mjs.tmpl +29 -0
  87. project_init/templates/base/justfile.tmpl +95 -0
  88. project_init/templates/base/mise.toml.tmpl +20 -0
  89. project_init/templates/base/mkdocs.yml.tmpl +32 -0
  90. project_init/templates/base/renovate.json +14 -0
  91. project_init/templates/base/ruff.toml.tmpl +31 -0
  92. project_init/templates/base/typedoc.json.tmpl +14 -0
  93. project_init/templates/codex/dot_agents/skills/add_adr/SKILL.md +33 -0
  94. project_init/templates/codex/dot_agents/skills/add_command/SKILL.md +63 -0
  95. project_init/templates/codex/dot_agents/skills/add_hook/SKILL.md +112 -0
  96. project_init/templates/codex/dot_agents/skills/audit/SKILL.md +146 -0
  97. project_init/templates/codex/dot_agents/skills/create_issue/SKILL.md +59 -0
  98. project_init/templates/codex/dot_agents/skills/github_workflow/SKILL.md +80 -0
  99. project_init/templates/codex/dot_agents/skills/request_review/SKILL.md +19 -0
  100. project_init/templates/codex/dot_agents/skills/review/SKILL.md +17 -0
  101. project_init/templates/codex/dot_agents/skills/save_memory/SKILL.md +17 -0
  102. project_init/templates/codex/dot_agents/skills/session_summary/SKILL.md +35 -0
  103. project_init/templates/codex/dot_agents/skills/start_task/SKILL.md +48 -0
  104. project_init/templates/codex/dot_agents/skills/status/SKILL.md +15 -0
  105. project_init/templates/codex/dot_codex/hooks.json.tmpl +17 -0
  106. project_init/templates/fallback/dot_claude/hooks/github_command_guard.sh +11 -0
  107. project_init/templates/fallback/dot_claude/hooks/post_edit_lint.sh +58 -0
  108. project_init/templates/fallback/dot_claude/hooks/pre_commit_gate.sh +81 -0
  109. project_init/templates/fallback/dot_claude/hooks/prod_guard.py +140 -0
  110. project_init/templates/fallback/dot_claude/hooks/session_setup.sh +62 -0
  111. project_init/templates/fallback/dot_claude/hooks/workflow_state_reminder.sh +72 -0
  112. project_init/templates/fallback/dot_claude/skills/INDEX.md +28 -0
  113. project_init/templates/fallback/dot_claude/skills/add_adr/SKILL.md +33 -0
  114. project_init/templates/fallback/dot_claude/skills/add_command/SKILL.md +63 -0
  115. project_init/templates/fallback/dot_claude/skills/add_hook/SKILL.md +112 -0
  116. project_init/templates/fallback/dot_claude/skills/audit/SKILL.md +146 -0
  117. project_init/templates/fallback/dot_claude/skills/create_issue/SKILL.md +59 -0
  118. project_init/templates/fallback/dot_claude/skills/github_workflow/SKILL.md +80 -0
  119. project_init/templates/fallback/dot_claude/skills/request_review/SKILL.md +19 -0
  120. project_init/templates/fallback/dot_claude/skills/review/SKILL.md +17 -0
  121. project_init/templates/fallback/dot_claude/skills/save_memory/SKILL.md +17 -0
  122. project_init/templates/fallback/dot_claude/skills/session_summary/SKILL.md +35 -0
  123. project_init/templates/fallback/dot_claude/skills/start_task/SKILL.md +48 -0
  124. project_init/templates/fallback/dot_claude/skills/status/SKILL.md +15 -0
  125. project_init/templates/gemini/dot_agents/skills/add_adr/SKILL.md +33 -0
  126. project_init/templates/gemini/dot_agents/skills/add_command/SKILL.md +63 -0
  127. project_init/templates/gemini/dot_agents/skills/add_hook/SKILL.md +112 -0
  128. project_init/templates/gemini/dot_agents/skills/audit/SKILL.md +146 -0
  129. project_init/templates/gemini/dot_agents/skills/create_issue/SKILL.md +59 -0
  130. project_init/templates/gemini/dot_agents/skills/github_workflow/SKILL.md +80 -0
  131. project_init/templates/gemini/dot_agents/skills/request_review/SKILL.md +19 -0
  132. project_init/templates/gemini/dot_agents/skills/review/SKILL.md +17 -0
  133. project_init/templates/gemini/dot_agents/skills/save_memory/SKILL.md +17 -0
  134. project_init/templates/gemini/dot_agents/skills/session_summary/SKILL.md +35 -0
  135. project_init/templates/gemini/dot_agents/skills/start_task/SKILL.md +48 -0
  136. project_init/templates/gemini/dot_agents/skills/status/SKILL.md +15 -0
  137. project_init/templates/gemini/dot_claude/scripts/setup_gemini.sh.tmpl +16 -0
  138. project_init/templates/gemini/dot_gemini-extension/commands/add_adr.toml +5 -0
  139. project_init/templates/gemini/dot_gemini-extension/commands/add_command.toml +5 -0
  140. project_init/templates/gemini/dot_gemini-extension/commands/add_hook.toml +5 -0
  141. project_init/templates/gemini/dot_gemini-extension/commands/audit.toml +5 -0
  142. project_init/templates/gemini/dot_gemini-extension/commands/create_issue.toml +5 -0
  143. project_init/templates/gemini/dot_gemini-extension/commands/github_workflow.toml +5 -0
  144. project_init/templates/gemini/dot_gemini-extension/commands/request_review.toml +5 -0
  145. project_init/templates/gemini/dot_gemini-extension/commands/review.toml +5 -0
  146. project_init/templates/gemini/dot_gemini-extension/commands/save_memory.toml +5 -0
  147. project_init/templates/gemini/dot_gemini-extension/commands/session_summary.toml +5 -0
  148. project_init/templates/gemini/dot_gemini-extension/commands/start_task.toml +5 -0
  149. project_init/templates/gemini/dot_gemini-extension/commands/status.toml +5 -0
  150. project_init/templates/gemini/dot_gemini-extension/gemini-extension.json.tmpl +6 -0
  151. project_init/templates/gemini/dot_gemini-extension/hooks/hooks.json.tmpl +18 -0
  152. project_init/templates/graphify/dot_claude/docs/guides/using-graphify.md +37 -0
  153. project_init/templates/graphify/dot_claude/rules/graphify.md +18 -0
  154. project_init/templates/graphify/dot_claude/scripts/setup_graphify.sh +40 -0
  155. project_init/templates/obsidian/dot_claude/scripts/lint_memory.sh +115 -0
  156. project_init/templates/obsidian/dot_claude/vault/decisions/adr-000-project-setup.md.tmpl +22 -0
  157. project_init/templates/obsidian/dot_claude/vault/dot_obsidian/README.md +31 -0
  158. project_init/templates/obsidian/dot_claude/vault/dot_obsidian/app.json +6 -0
  159. project_init/templates/obsidian/dot_claude/vault/dot_obsidian/community-plugins.json +1 -0
  160. project_init/templates/obsidian/dot_claude/vault/dot_obsidian/core-plugins.json +1 -0
  161. project_init/templates/obsidian/dot_claude/vault/log.md +6 -0
  162. project_init/templates/obsidian/dot_claude/vault/templates/decision.md +16 -0
  163. project_init/templates/obsidian/dot_claude/vault/templates/design-note.md +14 -0
  164. project_init/templates/obsidian/dot_claude/vault/templates/knowledge-note.md +12 -0
  165. project_init/templates/obsidian/dot_claude/vault/templates/session-note.md +16 -0
  166. project_init/templates/presets/obsidian-graphify.toml +16 -0
  167. project_init/templates/presets/obsidian-only.toml +14 -0
  168. project_init/upgrade.py +569 -0
  169. project_init-0.3.0.dist-info/METADATA +342 -0
  170. project_init-0.3.0.dist-info/RECORD +173 -0
  171. project_init-0.3.0.dist-info/WHEEL +4 -0
  172. project_init-0.3.0.dist-info/entry_points.txt +2 -0
  173. project_init-0.3.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/claude-code-settings.json",
3
+ "env": {
4
+ "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "70"
5
+ },
6
+ "extraKnownMarketplaces": {
7
+ "claude-plugins-official": {
8
+ "source": {
9
+ "source": "github",
10
+ "repo": "anthropics/claude-plugins-official"
11
+ }
12
+ },
13
+ "project-init": {
14
+ "source": {
15
+ "source": "github",
16
+ "repo": "{{project_init_repo}}"
17
+ }
18
+ }
19
+ },
20
+ "enabledPlugins": {
21
+ "security-guidance@claude-plugins-official": true,
22
+ "pr-review-toolkit@claude-plugins-official": true{{#if plugin_mode}},
23
+ "project-init-workflow@project-init": true{{/if plugin_mode}}
24
+ }{{#if no_plugin}},
25
+ "hooks": {
26
+ "SessionStart": [
27
+ {
28
+ "hooks": [
29
+ {
30
+ "type": "command",
31
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/session_setup.sh",
32
+ "timeout": 300
33
+ }
34
+ ]
35
+ }
36
+ ],
37
+ "PreToolUse": [
38
+ {
39
+ "matcher": "Bash",
40
+ "hooks": [
41
+ {
42
+ "type": "command",
43
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/pre_commit_gate.sh",
44
+ "timeout": 60
45
+ },
46
+ {
47
+ "type": "command",
48
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/github_command_guard.sh",
49
+ "timeout": 10
50
+ },
51
+ {
52
+ "type": "command",
53
+ "command": "python3 \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/prod_guard.py",
54
+ "timeout": 10
55
+ }
56
+ ]
57
+ }
58
+ ],
59
+ "PostToolUse": [
60
+ {
61
+ "matcher": "Edit|Write|MultiEdit",
62
+ "hooks": [
63
+ {
64
+ "type": "command",
65
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/post_edit_lint.sh",
66
+ "timeout": 30
67
+ }
68
+ ]
69
+ }
70
+ ],
71
+ "UserPromptSubmit": [
72
+ {
73
+ "hooks": [
74
+ {
75
+ "type": "command",
76
+ "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/workflow_state_reminder.sh",
77
+ "timeout": 10
78
+ }
79
+ ]
80
+ }
81
+ ]
82
+ }{{/if no_plugin}}
83
+ }
@@ -0,0 +1,12 @@
1
+ # `.claude/skills/`
2
+
3
+ Project-local Claude Code skills. Each skill is a directory `.claude/skills/<name>/SKILL.md`.
4
+
5
+ | Skill | When to use |
6
+ |---|---|
7
+ | `session_summary` | End of session — summarize work and save to vault |
8
+ | `start_task` | Before any non-trivial task — create a GitHub Issue |
9
+ | `add_hook` | When you need a new deterministic hook (safety, lint, logging) |
10
+ | `add_command` | When you need a new slash command for a recurring workflow |
11
+
12
+ User-level skills (across all projects) live in `~/.claude/skills/`.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: plan
3
+ description: TDD-style planning — understand requirements, write tests first, then implement with numbered steps
4
+ when_to_use: Use for non-trivial features or bug fixes. Plan before code to reduce rework and improve test coverage.
5
+ allowed-tools: Read Grep Glob Bash
6
+ ---
7
+
8
+ Plan this work in 5 phases. Format output clearly so it's actionable.
9
+
10
+ ## Phase 1 — Understand the requirement
11
+
12
+ Ask clarifying questions if needed. Answer: What is the core change? Why now? What's the acceptance criteria?
13
+
14
+ ## Phase 2 — Acceptance tests (write them first)
15
+
16
+ Write the test assertions **before** implementation code:
17
+
18
+ ```bash
19
+ # Example: test that a function returns X when given Y
20
+ assert_equals(parse_config("key=val"), {"key": "val"})
21
+ assert_throws(parse_config("broken"), ParseError)
22
+ ```
23
+
24
+ ## Phase 3 — Implementation plan
25
+
26
+ Numbered steps for implementation. Link to files (`path:line_number`). Estimate scope (1-2h, half-day, day+).
27
+
28
+ ## Phase 4 — Risks and scope
29
+
30
+ - What could go wrong?
31
+ - Is this change backward compatible?
32
+ - Do other parts of the system depend on this behavior?
33
+
34
+ ## Phase 5 — Definition of done
35
+
36
+ When is this complete?
37
+ - Tests pass
38
+ - Behavior works end-to-end
39
+ - Error cases handled
40
+ - Documentation updated if needed
@@ -0,0 +1,21 @@
1
+ # `.claude/vault/` — Obsidian vault
2
+
3
+ Human-authored project documentation. Open this directory as an Obsidian vault root.
4
+
5
+ ## Layout
6
+
7
+ - [`decisions/`](decisions/) — architectural decisions (ADRs). One note per decision.
8
+ - [`design/`](design/) — design notes, system sketches, spec drafts.
9
+ - [`sessions/`](sessions/) — session logs (append-only, dated).
10
+ - [`knowledge/`](knowledge/) — domain notes, research, references.
11
+
12
+ ## Why inside `.claude/`
13
+
14
+ Keeps everything agentic-dev-related under a single root folder. Obsidian doesn't care that the path is hidden — point it at `.claude/vault/` and use normally.
15
+
16
+ ## Conventions
17
+
18
+ - Plain markdown, nothing Obsidian-proprietary in note content (wikilinks are fine).
19
+ - Dates in filenames as `YYYY-MM-DD` for chronological sort.
20
+ - One topic per note.
21
+ - Use `#tags` for lightweight categorization.
@@ -0,0 +1,22 @@
1
+ # decisions/
2
+
3
+ Architectural decision records. One note per decision.
4
+
5
+ Suggested template:
6
+
7
+ ```markdown
8
+ # <decision title>
9
+
10
+ **Date**: YYYY-MM-DD
11
+ **Status**: proposed | accepted | superseded
12
+ **Supersedes**: (link)
13
+ **Superseded by**: (link)
14
+
15
+ ## Context
16
+
17
+ ## Options considered
18
+
19
+ ## Decision
20
+
21
+ ## Consequences
22
+ ```
@@ -0,0 +1,3 @@
1
+ # design/
2
+
3
+ Design notes, diagrams, spec drafts. Less formal than `decisions/` — a place for working through problems.
@@ -0,0 +1,5 @@
1
+ # knowledge/
2
+
3
+ Domain notes, research, external references.
4
+
5
+ Put API dumps, library notes, concept explainers here — the kind of things you'd want to re-read rather than re-derive.
@@ -0,0 +1,5 @@
1
+ # sessions/
2
+
3
+ Session logs. Append-only. The `/session_summary` skill writes one file per session: `YYYY-MM-DD-HHMM.md`.
4
+
5
+ Manually editable if you want to add notes the agent missed.
@@ -0,0 +1,17 @@
1
+ {{#if devcontainer}}{
2
+ "name": "{{project_name}}",
3
+ "image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04",
4
+ {{#if go}} "features": {
5
+ "ghcr.io/devcontainers/features/go:1": {}
6
+ },
7
+ {{/if go}} "postCreateCommand": "bash .devcontainer/post-create.sh",
8
+ "remoteEnv": {
9
+ "PATH": "${containerEnv:HOME}/.local/bin:${containerEnv:HOME}/.bun/bin:${containerEnv:PATH}"
10
+ },
11
+ "customizations": {
12
+ "vscode": {
13
+ "extensions": ["anthropic.claude-code"]
14
+ }
15
+ }
16
+ }
17
+ {{/if devcontainer}}
@@ -0,0 +1,31 @@
1
+ {{#if devcontainer}}#!/bin/bash
2
+ # Devcontainer bootstrap (scaffolded by project-init): install the toolchain
3
+ # the scaffolded workflow expects, then sync dependencies through the same
4
+ # path the SessionStart hook uses. Idempotent — safe to re-run.
5
+ set -euo pipefail
6
+
7
+ mkdir -p "$HOME/.local/bin"
8
+ export PATH="$HOME/.local/bin:$PATH"
9
+
10
+ # just — the canonical command surface (`just --list`)
11
+ if ! command -v just >/dev/null 2>&1; then
12
+ curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh \
13
+ | bash -s -- --to "$HOME/.local/bin"
14
+ fi
15
+ {{#if python}}
16
+ # uv — Python toolchain and dependency manager
17
+ if ! command -v uv >/dev/null 2>&1; then
18
+ curl -LsSf https://astral.sh/uv/install.sh | sh
19
+ fi
20
+ {{/if python}}{{#if node}}
21
+ # bun — Node runtime and package manager
22
+ if ! command -v bun >/dev/null 2>&1; then
23
+ curl -fsSL https://bun.sh/install | bash
24
+ export PATH="$HOME/.bun/bin:$PATH"
25
+ fi
26
+ {{/if node}}
27
+ # Sync dependencies. With --no-plugin scaffolds the SessionStart script is
28
+ # local; plugin-mode containers bootstrap via just (the plugin hook stamps
29
+ # the environment once a session opens).
30
+ {{#if no_plugin}}bash .claude/hooks/session_setup.sh{{/if no_plugin}}{{#if plugin_mode}}command -v just >/dev/null 2>&1 && [ -f justfile ] && just setup || true{{/if plugin_mode}}
31
+ {{/if devcontainer}}
@@ -0,0 +1,13 @@
1
+ # .env.example — template for local environment (scaffolded by project-init).
2
+ #
3
+ # Copy to .env (gitignored) and fill in real values: cp .env.example .env
4
+ #
5
+ # Loading order (first match wins):
6
+ # 1. variables already exported in your shell
7
+ # 2. .env, loaded by the tool itself — `uv run --env-file .env`, bun
8
+ # auto-loads .env, or direnv if your team uses it
9
+ # Nothing here is loaded implicitly by the scaffold; tools opt in.
10
+ #
11
+ # Never commit .env: the pre-commit gitleaks scan and CI both enforce this.
12
+ # For team secrets, see .claude/docs/guides/secrets.md (escalation paths).
13
+ # EXAMPLE_API_KEY=
@@ -0,0 +1,12 @@
1
+ # CODEOWNERS — reviewers auto-requested for matching paths (scaffolded by project-init).
2
+ # Order matters: the last matching pattern wins.
3
+ # Owners must be GitHub usernames (@user) or teams (@org/team) with write access.
4
+ {{#if project_owner}}
5
+ # Default owner for everything in the repository.
6
+ * {{project_owner}}
7
+ {{/if project_owner}}
8
+ # Per-area examples — uncomment and adjust:
9
+ # /src/ @your-org/backend
10
+ # /docs/ @your-org/docs
11
+ # /.github/ @your-org/platform
12
+ # /.claude/ @your-org/platform
@@ -0,0 +1,98 @@
1
+ name: Bug
2
+ description: Something is broken
3
+ labels: [bug]
4
+ body:
5
+ - type: dropdown
6
+ id: priority
7
+ attributes:
8
+ label: Priority
9
+ options: [high, medium, low]
10
+ validations:
11
+ required: true
12
+ - type: input
13
+ id: area
14
+ attributes:
15
+ label: Area
16
+ placeholder: frontend, backend, docs, devops, product
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: size
21
+ attributes:
22
+ label: Size
23
+ options: [XS, S, M, L, XL]
24
+ validations:
25
+ required: true
26
+ - type: textarea
27
+ id: description
28
+ attributes:
29
+ label: What happened?
30
+ placeholder: Describe the bug
31
+ validations:
32
+ required: true
33
+ - type: textarea
34
+ id: repro
35
+ attributes:
36
+ label: Steps to reproduce
37
+ placeholder: |
38
+ 1. ...
39
+ 2. See error
40
+ validations:
41
+ required: true
42
+ - type: textarea
43
+ id: expected
44
+ attributes:
45
+ label: Expected behaviour
46
+ validations:
47
+ required: true
48
+ - type: textarea
49
+ id: environment
50
+ attributes:
51
+ label: Environment
52
+ placeholder: "OS, runtime version, dependency versions"
53
+ - type: textarea
54
+ id: references
55
+ attributes:
56
+ label: References
57
+ description: Related issues, PRs, ADRs, docs, designs, logs, or external links.
58
+ - type: textarea
59
+ id: dependencies
60
+ attributes:
61
+ label: Dependencies
62
+ description: Blocked-by, parent, or follow-up relationships.
63
+ - type: textarea
64
+ id: acceptance
65
+ attributes:
66
+ label: Acceptance criteria
67
+ placeholder: |
68
+ - [ ] ...
69
+ validations:
70
+ required: true
71
+ - type: dropdown
72
+ id: agent_ready
73
+ attributes:
74
+ label: Agent ready
75
+ description: Can an AI agent implement this without human clarification?
76
+ options: ["Yes", "No"]
77
+ default: 1
78
+ - type: dropdown
79
+ id: confidence
80
+ attributes:
81
+ label: Confidence
82
+ description: How well-understood is the scope and approach?
83
+ options: [high, medium, low, unknown]
84
+ default: 3
85
+ - type: textarea
86
+ id: ready
87
+ attributes:
88
+ label: Definition of Ready
89
+ placeholder: What must be true before implementation starts?
90
+ validations:
91
+ required: true
92
+ - type: textarea
93
+ id: done
94
+ attributes:
95
+ label: Definition of Done
96
+ placeholder: What must be true before this can close?
97
+ validations:
98
+ required: true
@@ -0,0 +1,82 @@
1
+ name: Chore
2
+ description: Maintenance, refactor, dependency update, or CI change
3
+ labels: [chore]
4
+ body:
5
+ - type: dropdown
6
+ id: priority
7
+ attributes:
8
+ label: Priority
9
+ options: [high, medium, low]
10
+ validations:
11
+ required: true
12
+ - type: input
13
+ id: area
14
+ attributes:
15
+ label: Area
16
+ placeholder: frontend, backend, docs, devops, product
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: size
21
+ attributes:
22
+ label: Size
23
+ options: [XS, S, M, L, XL]
24
+ validations:
25
+ required: true
26
+ - type: textarea
27
+ id: description
28
+ attributes:
29
+ label: What needs doing?
30
+ validations:
31
+ required: true
32
+ - type: textarea
33
+ id: why
34
+ attributes:
35
+ label: Why now?
36
+ description: What breaks or degrades if this is skipped?
37
+ - type: textarea
38
+ id: references
39
+ attributes:
40
+ label: References
41
+ description: Related issues, PRs, ADRs, docs, designs, or external links.
42
+ - type: textarea
43
+ id: dependencies
44
+ attributes:
45
+ label: Dependencies
46
+ description: Blocked-by, parent, or follow-up relationships.
47
+ - type: textarea
48
+ id: acceptance
49
+ attributes:
50
+ label: Acceptance criteria
51
+ placeholder: |
52
+ - [ ] ...
53
+ validations:
54
+ required: true
55
+ - type: dropdown
56
+ id: agent_ready
57
+ attributes:
58
+ label: Agent ready
59
+ description: Can an AI agent implement this without human clarification?
60
+ options: ["Yes", "No"]
61
+ default: 1
62
+ - type: dropdown
63
+ id: confidence
64
+ attributes:
65
+ label: Confidence
66
+ description: How well-understood is the scope and approach?
67
+ options: [high, medium, low, unknown]
68
+ default: 3
69
+ - type: textarea
70
+ id: ready
71
+ attributes:
72
+ label: Definition of Ready
73
+ placeholder: What must be true before implementation starts?
74
+ validations:
75
+ required: true
76
+ - type: textarea
77
+ id: done
78
+ attributes:
79
+ label: Definition of Done
80
+ placeholder: What must be true before this can close?
81
+ validations:
82
+ required: true
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Planning discussion
4
+ url: https://github.com
5
+ about: Use discussions for exploratory ideas that are not ready for issue tracking.
@@ -0,0 +1,84 @@
1
+ name: Docs
2
+ description: Documentation addition or correction
3
+ labels: [documentation]
4
+ body:
5
+ - type: dropdown
6
+ id: priority
7
+ attributes:
8
+ label: Priority
9
+ options: [high, medium, low]
10
+ validations:
11
+ required: true
12
+ - type: input
13
+ id: area
14
+ attributes:
15
+ label: Area
16
+ placeholder: docs, product, devops, frontend, backend
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: size
21
+ attributes:
22
+ label: Size
23
+ options: [XS, S, M, L, XL]
24
+ validations:
25
+ required: true
26
+ - type: textarea
27
+ id: scope
28
+ attributes:
29
+ label: What needs documenting?
30
+ description: Which behavior, workflow, or decision needs clearer documentation?
31
+ validations:
32
+ required: true
33
+ - type: textarea
34
+ id: audience
35
+ attributes:
36
+ label: Audience
37
+ description: Who needs this documentation?
38
+ placeholder: "Users, maintainers, agents, contributors, operators..."
39
+ - type: textarea
40
+ id: references
41
+ attributes:
42
+ label: References
43
+ description: Related issues, PRs, ADRs, files, or external links
44
+ - type: textarea
45
+ id: dependencies
46
+ attributes:
47
+ label: Dependencies
48
+ description: Blocked-by, parent, or follow-up relationships.
49
+ - type: textarea
50
+ id: acceptance
51
+ attributes:
52
+ label: Acceptance criteria
53
+ placeholder: |
54
+ - [ ] ...
55
+ validations:
56
+ required: true
57
+ - type: dropdown
58
+ id: agent_ready
59
+ attributes:
60
+ label: Agent ready
61
+ description: Can an AI agent implement this without human clarification?
62
+ options: ["Yes", "No"]
63
+ default: 1
64
+ - type: dropdown
65
+ id: confidence
66
+ attributes:
67
+ label: Confidence
68
+ description: How well-understood is the scope and approach?
69
+ options: [high, medium, low, unknown]
70
+ default: 3
71
+ - type: textarea
72
+ id: ready
73
+ attributes:
74
+ label: Definition of Ready
75
+ placeholder: What must be true before implementation starts?
76
+ validations:
77
+ required: true
78
+ - type: textarea
79
+ id: done
80
+ attributes:
81
+ label: Definition of Done
82
+ placeholder: What must be true before this can close?
83
+ validations:
84
+ required: true
@@ -0,0 +1,87 @@
1
+ name: Feature
2
+ description: New feature or enhancement
3
+ labels: [feature]
4
+ body:
5
+ - type: dropdown
6
+ id: priority
7
+ attributes:
8
+ label: Priority
9
+ options: [high, medium, low]
10
+ validations:
11
+ required: true
12
+ - type: input
13
+ id: area
14
+ attributes:
15
+ label: Area
16
+ placeholder: frontend, backend, docs, devops, product
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: size
21
+ attributes:
22
+ label: Size
23
+ options: [XS, S, M, L, XL]
24
+ validations:
25
+ required: true
26
+ - type: input
27
+ id: title
28
+ attributes:
29
+ label: What should this do?
30
+ placeholder: "Add X / Support Y / Allow Z"
31
+ validations:
32
+ required: true
33
+ - type: textarea
34
+ id: description
35
+ attributes:
36
+ label: Description
37
+ description: What changes and why
38
+ validations:
39
+ required: true
40
+ - type: textarea
41
+ id: acceptance
42
+ attributes:
43
+ label: Acceptance criteria
44
+ description: Bullet list of conditions that define "done"
45
+ placeholder: |
46
+ - [ ] Criterion 1
47
+ - [ ] Criterion 2
48
+ validations:
49
+ required: true
50
+ - type: textarea
51
+ id: references
52
+ attributes:
53
+ label: References
54
+ description: Related issues, PRs, ADRs, docs, designs, or external links.
55
+ - type: textarea
56
+ id: dependencies
57
+ attributes:
58
+ label: Dependencies
59
+ description: Blocked-by, parent, or follow-up relationships.
60
+ - type: dropdown
61
+ id: agent_ready
62
+ attributes:
63
+ label: Agent ready
64
+ description: Can an AI agent implement this without human clarification?
65
+ options: ["Yes", "No"]
66
+ default: 1
67
+ - type: dropdown
68
+ id: confidence
69
+ attributes:
70
+ label: Confidence
71
+ description: How well-understood is the scope and approach?
72
+ options: [high, medium, low, unknown]
73
+ default: 3
74
+ - type: textarea
75
+ id: ready
76
+ attributes:
77
+ label: Definition of Ready
78
+ placeholder: What must be true before implementation starts?
79
+ validations:
80
+ required: true
81
+ - type: textarea
82
+ id: done
83
+ attributes:
84
+ label: Definition of Done
85
+ placeholder: What must be true before this can close?
86
+ validations:
87
+ required: true