agent-bootstrap 0.1.0__tar.gz

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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 marcelodevops
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,171 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-bootstrap
3
+ Version: 0.1.0
4
+ Summary: Scaffold AI-agent-ready projects from curated templates, presets, or a dirtree layout
5
+ Author: marcelodevops
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 marcelodevops
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/marcelodevops/project_bootstrapper
29
+ Project-URL: Repository, https://github.com/marcelodevops/project_bootstrapper
30
+ Project-URL: Issues, https://github.com/marcelodevops/project_bootstrapper/issues
31
+ Keywords: scaffold,boilerplate,ai-agents,project-template,codegen,cli
32
+ Classifier: Development Status :: 4 - Beta
33
+ Classifier: Environment :: Console
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3.11
37
+ Classifier: Programming Language :: Python :: 3.12
38
+ Classifier: Programming Language :: Python :: 3.13
39
+ Classifier: Topic :: Software Development :: Code Generators
40
+ Requires-Python: >=3.11
41
+ Description-Content-Type: text/markdown
42
+ License-File: LICENSE
43
+ Requires-Dist: typer>=0.9
44
+ Requires-Dist: PyGithub>=2.0
45
+ Provides-Extra: dev
46
+ Requires-Dist: pytest>=8; extra == "dev"
47
+ Requires-Dist: build>=1.0; extra == "dev"
48
+ Dynamic: license-file
49
+
50
+ # agent-bootstrap (`projboot`)
51
+
52
+ Scaffold AI-agent-ready projects from curated language templates, customizable workflow presets, or a `tree`-style layout — locally first, with one-command GitHub repository creation.
53
+
54
+ ## Install
55
+
56
+ ```bash
57
+ pip install agent-bootstrap # installs both `projboot` and `agent-bootstrap`
58
+ pip install -e ".[dev]" # dev: + pytest for the test suite
59
+ ```
60
+
61
+ Requires Python 3.11+. Local scaffolding needs no token and no network; GitHub remote creation (`-r github --create`) uses `GITHUB_TOKEN`.
62
+
63
+ ---
64
+
65
+ ## Quickstart: AI Agent Project Bootstrapping (`projboot create`)
66
+
67
+ Create a new Python project pre-wired for **Claude Code** and **GitHub Copilot**, scaffolded locally and pushed to a new GitHub repository:
68
+
69
+ ```bash
70
+ projboot create new-project -l python -a claude -a gh-copilot -r github --create --clone
71
+ ```
72
+
73
+ Or scaffold locally with custom directories for generated outputs, helper scripts, an ordered prompts catalog, and architecture conventions (all automatically wired into `AGENTS.md`, `CLAUDE.md`, `.github/copilot-instructions.md`, etc.):
74
+
75
+ ```bash
76
+ projboot create new-project \
77
+ -l python \
78
+ -a claude -a gh-copilot -a codeassistant \
79
+ --arch hexagonal \
80
+ --outputs-dir artifacts/out \
81
+ --scripts-dir hack \
82
+ --prompts-file docs/PROMPTS.md
83
+ ```
84
+
85
+ ### What `projboot create` Generates
86
+
87
+ 1. **Base Language Stack (`-l / --lang`)**:
88
+ - `python` / `python-microservice`: `src/` layout, `pyproject.toml`, `Dockerfile`, GitHub CI
89
+ - `typescript`: `package.json`, `tsconfig.json`, `src/index.ts`, multi-stage `Dockerfile`
90
+ - `helm-chart`: `Chart.yaml`, `values.yaml`, `templates/`, `helm lint` CI
91
+ - `rails`: Minimal Rails skeleton
92
+ - `none`: Minimal agent-only repo (`README.md` + `.gitignore`)
93
+ 2. **Universal Agent Harness (Always Included)**:
94
+ - `AGENTS.md`: Project overview, `$arch` rules, directory map (`$outputs_dir/`, `$scripts_dir/`, `$prompts_file`), and `graphify` instructions
95
+ - `graphify-out/`: Knowledge graph folder (automatically updated via `graphify update .` if `graphify` is installed)
96
+ - `.remember/`: Persistent agent memory (`MEMORY.md` & `decisions.md`, or copied from `~/.config/projboot/remember/`)
97
+ - `.agents/skills/`: Reusable project skills (copied from `~/.config/projboot/skills/` or starter `project-conventions/SKILL.md`)
98
+ - `$prompts_file` (default `PROMPTS.md`): Ordered prompt catalog
99
+ - `$outputs_dir/` & `$scripts_dir/` directories
100
+ 3. **Assistant Overlays (`-a / --agent`, repeatable)**:
101
+ - `-a claude`: `CLAUDE.md` + `.claude/settings.json`
102
+ - `-a gh-copilot`: `.github/copilot-instructions.md` + `.github/prompts/bootstrap.prompt.md`
103
+ - `-a codeassistant`: `.codeassistant/instructions.md`
104
+ - `-a cursor`: `.cursor/rules/project.mdc`
105
+
106
+ ---
107
+
108
+ ## Presets & Personal User Store (`~/.config/projboot/`)
109
+
110
+ Initialize your personal `projboot` configuration directory (or set `PROJBOOT_HOME` to customize its path):
111
+
112
+ ```bash
113
+ projboot config-init
114
+ projboot list-presets
115
+ ```
116
+
117
+ This creates:
118
+ - `~/.config/projboot/presets.toml` — Define named presets (`default`, `clean-arch`, or your own) with default `arch`, `outputs_dir`, `scripts_dir`, `prompts_file`, and `agents`.
119
+ - `~/.config/projboot/skills/` — Any skill files placed here are automatically copied into `.agents/skills/` and rendered with your project's `$name`, `$arch`, `$outputs_dir`, `$scripts_dir`, and `$prompts_file` variables.
120
+ - `~/.config/projboot/remember/` — Starter memory templates copied into `.remember/` on every new project.
121
+
122
+ Use a named preset with `-p / --preset`:
123
+
124
+ ```bash
125
+ projboot create my-service -l python -p clean-arch
126
+ ```
127
+
128
+ ---
129
+
130
+ ## Classic Template & Dirtree Commands
131
+
132
+ List available base templates:
133
+
134
+ ```bash
135
+ projboot list-templates
136
+ ```
137
+
138
+ Scaffold directly from a base template (without the AI agent harness):
139
+
140
+ ```bash
141
+ projboot init --name my-svc --template python-microservice \
142
+ --description "My service" --license mit --holder "Your Name" --local
143
+ ```
144
+
145
+ Override or add template variables with `--var` (repeatable):
146
+
147
+ ```bash
148
+ projboot init --name demo --template typescript --var name=real-package-name --local
149
+ ```
150
+
151
+ Build a layout from a `tree`-style file — directories become paths, leaf files are materialized empty:
152
+
153
+ ```bash
154
+ projboot init-from-tree --name myproject --tree-file examples/tree.txt --gitkeep --local
155
+ ```
156
+
157
+ `--gitkeep` drops a `.gitkeep` in empty directories so they survive; `--force` allows overwriting a non-empty local target directory.
158
+
159
+ ---
160
+
161
+ ## How Templating Works
162
+
163
+ Templates render with Python's `string.Template` (`$name`, `$description`, `$year`, `$holder`, `$arch`, `$outputs_dir`, `$scripts_dir`, `$prompts_file`, plus any `--var`). This is deliberate: Helm's Go-template syntax (`{{ .Values.foo }}`) and GitHub Actions expressions (`${{ secrets.X }}`) contain no bare `$identifier`, so they pass through untouched. `str.format()` or Jinja2 would corrupt them.
164
+
165
+ ## Tests
166
+
167
+ ```bash
168
+ pytest -q
169
+ ```
170
+
171
+ The dirtree parser, template rendering, preset & user store loader, AI agent overlays, CLI (local + GitHub dispatch via mocks), and GitHub helper are all covered without any network access.
@@ -0,0 +1,122 @@
1
+ # agent-bootstrap (`projboot`)
2
+
3
+ Scaffold AI-agent-ready projects from curated language templates, customizable workflow presets, or a `tree`-style layout — locally first, with one-command GitHub repository creation.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install agent-bootstrap # installs both `projboot` and `agent-bootstrap`
9
+ pip install -e ".[dev]" # dev: + pytest for the test suite
10
+ ```
11
+
12
+ Requires Python 3.11+. Local scaffolding needs no token and no network; GitHub remote creation (`-r github --create`) uses `GITHUB_TOKEN`.
13
+
14
+ ---
15
+
16
+ ## Quickstart: AI Agent Project Bootstrapping (`projboot create`)
17
+
18
+ Create a new Python project pre-wired for **Claude Code** and **GitHub Copilot**, scaffolded locally and pushed to a new GitHub repository:
19
+
20
+ ```bash
21
+ projboot create new-project -l python -a claude -a gh-copilot -r github --create --clone
22
+ ```
23
+
24
+ Or scaffold locally with custom directories for generated outputs, helper scripts, an ordered prompts catalog, and architecture conventions (all automatically wired into `AGENTS.md`, `CLAUDE.md`, `.github/copilot-instructions.md`, etc.):
25
+
26
+ ```bash
27
+ projboot create new-project \
28
+ -l python \
29
+ -a claude -a gh-copilot -a codeassistant \
30
+ --arch hexagonal \
31
+ --outputs-dir artifacts/out \
32
+ --scripts-dir hack \
33
+ --prompts-file docs/PROMPTS.md
34
+ ```
35
+
36
+ ### What `projboot create` Generates
37
+
38
+ 1. **Base Language Stack (`-l / --lang`)**:
39
+ - `python` / `python-microservice`: `src/` layout, `pyproject.toml`, `Dockerfile`, GitHub CI
40
+ - `typescript`: `package.json`, `tsconfig.json`, `src/index.ts`, multi-stage `Dockerfile`
41
+ - `helm-chart`: `Chart.yaml`, `values.yaml`, `templates/`, `helm lint` CI
42
+ - `rails`: Minimal Rails skeleton
43
+ - `none`: Minimal agent-only repo (`README.md` + `.gitignore`)
44
+ 2. **Universal Agent Harness (Always Included)**:
45
+ - `AGENTS.md`: Project overview, `$arch` rules, directory map (`$outputs_dir/`, `$scripts_dir/`, `$prompts_file`), and `graphify` instructions
46
+ - `graphify-out/`: Knowledge graph folder (automatically updated via `graphify update .` if `graphify` is installed)
47
+ - `.remember/`: Persistent agent memory (`MEMORY.md` & `decisions.md`, or copied from `~/.config/projboot/remember/`)
48
+ - `.agents/skills/`: Reusable project skills (copied from `~/.config/projboot/skills/` or starter `project-conventions/SKILL.md`)
49
+ - `$prompts_file` (default `PROMPTS.md`): Ordered prompt catalog
50
+ - `$outputs_dir/` & `$scripts_dir/` directories
51
+ 3. **Assistant Overlays (`-a / --agent`, repeatable)**:
52
+ - `-a claude`: `CLAUDE.md` + `.claude/settings.json`
53
+ - `-a gh-copilot`: `.github/copilot-instructions.md` + `.github/prompts/bootstrap.prompt.md`
54
+ - `-a codeassistant`: `.codeassistant/instructions.md`
55
+ - `-a cursor`: `.cursor/rules/project.mdc`
56
+
57
+ ---
58
+
59
+ ## Presets & Personal User Store (`~/.config/projboot/`)
60
+
61
+ Initialize your personal `projboot` configuration directory (or set `PROJBOOT_HOME` to customize its path):
62
+
63
+ ```bash
64
+ projboot config-init
65
+ projboot list-presets
66
+ ```
67
+
68
+ This creates:
69
+ - `~/.config/projboot/presets.toml` — Define named presets (`default`, `clean-arch`, or your own) with default `arch`, `outputs_dir`, `scripts_dir`, `prompts_file`, and `agents`.
70
+ - `~/.config/projboot/skills/` — Any skill files placed here are automatically copied into `.agents/skills/` and rendered with your project's `$name`, `$arch`, `$outputs_dir`, `$scripts_dir`, and `$prompts_file` variables.
71
+ - `~/.config/projboot/remember/` — Starter memory templates copied into `.remember/` on every new project.
72
+
73
+ Use a named preset with `-p / --preset`:
74
+
75
+ ```bash
76
+ projboot create my-service -l python -p clean-arch
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Classic Template & Dirtree Commands
82
+
83
+ List available base templates:
84
+
85
+ ```bash
86
+ projboot list-templates
87
+ ```
88
+
89
+ Scaffold directly from a base template (without the AI agent harness):
90
+
91
+ ```bash
92
+ projboot init --name my-svc --template python-microservice \
93
+ --description "My service" --license mit --holder "Your Name" --local
94
+ ```
95
+
96
+ Override or add template variables with `--var` (repeatable):
97
+
98
+ ```bash
99
+ projboot init --name demo --template typescript --var name=real-package-name --local
100
+ ```
101
+
102
+ Build a layout from a `tree`-style file — directories become paths, leaf files are materialized empty:
103
+
104
+ ```bash
105
+ projboot init-from-tree --name myproject --tree-file examples/tree.txt --gitkeep --local
106
+ ```
107
+
108
+ `--gitkeep` drops a `.gitkeep` in empty directories so they survive; `--force` allows overwriting a non-empty local target directory.
109
+
110
+ ---
111
+
112
+ ## How Templating Works
113
+
114
+ Templates render with Python's `string.Template` (`$name`, `$description`, `$year`, `$holder`, `$arch`, `$outputs_dir`, `$scripts_dir`, `$prompts_file`, plus any `--var`). This is deliberate: Helm's Go-template syntax (`{{ .Values.foo }}`) and GitHub Actions expressions (`${{ secrets.X }}`) contain no bare `$identifier`, so they pass through untouched. `str.format()` or Jinja2 would corrupt them.
115
+
116
+ ## Tests
117
+
118
+ ```bash
119
+ pytest -q
120
+ ```
121
+
122
+ The dirtree parser, template rendering, preset & user store loader, AI agent overlays, CLI (local + GitHub dispatch via mocks), and GitHub helper are all covered without any network access.
@@ -0,0 +1,171 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-bootstrap
3
+ Version: 0.1.0
4
+ Summary: Scaffold AI-agent-ready projects from curated templates, presets, or a dirtree layout
5
+ Author: marcelodevops
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 marcelodevops
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/marcelodevops/project_bootstrapper
29
+ Project-URL: Repository, https://github.com/marcelodevops/project_bootstrapper
30
+ Project-URL: Issues, https://github.com/marcelodevops/project_bootstrapper/issues
31
+ Keywords: scaffold,boilerplate,ai-agents,project-template,codegen,cli
32
+ Classifier: Development Status :: 4 - Beta
33
+ Classifier: Environment :: Console
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: Programming Language :: Python :: 3
36
+ Classifier: Programming Language :: Python :: 3.11
37
+ Classifier: Programming Language :: Python :: 3.12
38
+ Classifier: Programming Language :: Python :: 3.13
39
+ Classifier: Topic :: Software Development :: Code Generators
40
+ Requires-Python: >=3.11
41
+ Description-Content-Type: text/markdown
42
+ License-File: LICENSE
43
+ Requires-Dist: typer>=0.9
44
+ Requires-Dist: PyGithub>=2.0
45
+ Provides-Extra: dev
46
+ Requires-Dist: pytest>=8; extra == "dev"
47
+ Requires-Dist: build>=1.0; extra == "dev"
48
+ Dynamic: license-file
49
+
50
+ # agent-bootstrap (`projboot`)
51
+
52
+ Scaffold AI-agent-ready projects from curated language templates, customizable workflow presets, or a `tree`-style layout — locally first, with one-command GitHub repository creation.
53
+
54
+ ## Install
55
+
56
+ ```bash
57
+ pip install agent-bootstrap # installs both `projboot` and `agent-bootstrap`
58
+ pip install -e ".[dev]" # dev: + pytest for the test suite
59
+ ```
60
+
61
+ Requires Python 3.11+. Local scaffolding needs no token and no network; GitHub remote creation (`-r github --create`) uses `GITHUB_TOKEN`.
62
+
63
+ ---
64
+
65
+ ## Quickstart: AI Agent Project Bootstrapping (`projboot create`)
66
+
67
+ Create a new Python project pre-wired for **Claude Code** and **GitHub Copilot**, scaffolded locally and pushed to a new GitHub repository:
68
+
69
+ ```bash
70
+ projboot create new-project -l python -a claude -a gh-copilot -r github --create --clone
71
+ ```
72
+
73
+ Or scaffold locally with custom directories for generated outputs, helper scripts, an ordered prompts catalog, and architecture conventions (all automatically wired into `AGENTS.md`, `CLAUDE.md`, `.github/copilot-instructions.md`, etc.):
74
+
75
+ ```bash
76
+ projboot create new-project \
77
+ -l python \
78
+ -a claude -a gh-copilot -a codeassistant \
79
+ --arch hexagonal \
80
+ --outputs-dir artifacts/out \
81
+ --scripts-dir hack \
82
+ --prompts-file docs/PROMPTS.md
83
+ ```
84
+
85
+ ### What `projboot create` Generates
86
+
87
+ 1. **Base Language Stack (`-l / --lang`)**:
88
+ - `python` / `python-microservice`: `src/` layout, `pyproject.toml`, `Dockerfile`, GitHub CI
89
+ - `typescript`: `package.json`, `tsconfig.json`, `src/index.ts`, multi-stage `Dockerfile`
90
+ - `helm-chart`: `Chart.yaml`, `values.yaml`, `templates/`, `helm lint` CI
91
+ - `rails`: Minimal Rails skeleton
92
+ - `none`: Minimal agent-only repo (`README.md` + `.gitignore`)
93
+ 2. **Universal Agent Harness (Always Included)**:
94
+ - `AGENTS.md`: Project overview, `$arch` rules, directory map (`$outputs_dir/`, `$scripts_dir/`, `$prompts_file`), and `graphify` instructions
95
+ - `graphify-out/`: Knowledge graph folder (automatically updated via `graphify update .` if `graphify` is installed)
96
+ - `.remember/`: Persistent agent memory (`MEMORY.md` & `decisions.md`, or copied from `~/.config/projboot/remember/`)
97
+ - `.agents/skills/`: Reusable project skills (copied from `~/.config/projboot/skills/` or starter `project-conventions/SKILL.md`)
98
+ - `$prompts_file` (default `PROMPTS.md`): Ordered prompt catalog
99
+ - `$outputs_dir/` & `$scripts_dir/` directories
100
+ 3. **Assistant Overlays (`-a / --agent`, repeatable)**:
101
+ - `-a claude`: `CLAUDE.md` + `.claude/settings.json`
102
+ - `-a gh-copilot`: `.github/copilot-instructions.md` + `.github/prompts/bootstrap.prompt.md`
103
+ - `-a codeassistant`: `.codeassistant/instructions.md`
104
+ - `-a cursor`: `.cursor/rules/project.mdc`
105
+
106
+ ---
107
+
108
+ ## Presets & Personal User Store (`~/.config/projboot/`)
109
+
110
+ Initialize your personal `projboot` configuration directory (or set `PROJBOOT_HOME` to customize its path):
111
+
112
+ ```bash
113
+ projboot config-init
114
+ projboot list-presets
115
+ ```
116
+
117
+ This creates:
118
+ - `~/.config/projboot/presets.toml` — Define named presets (`default`, `clean-arch`, or your own) with default `arch`, `outputs_dir`, `scripts_dir`, `prompts_file`, and `agents`.
119
+ - `~/.config/projboot/skills/` — Any skill files placed here are automatically copied into `.agents/skills/` and rendered with your project's `$name`, `$arch`, `$outputs_dir`, `$scripts_dir`, and `$prompts_file` variables.
120
+ - `~/.config/projboot/remember/` — Starter memory templates copied into `.remember/` on every new project.
121
+
122
+ Use a named preset with `-p / --preset`:
123
+
124
+ ```bash
125
+ projboot create my-service -l python -p clean-arch
126
+ ```
127
+
128
+ ---
129
+
130
+ ## Classic Template & Dirtree Commands
131
+
132
+ List available base templates:
133
+
134
+ ```bash
135
+ projboot list-templates
136
+ ```
137
+
138
+ Scaffold directly from a base template (without the AI agent harness):
139
+
140
+ ```bash
141
+ projboot init --name my-svc --template python-microservice \
142
+ --description "My service" --license mit --holder "Your Name" --local
143
+ ```
144
+
145
+ Override or add template variables with `--var` (repeatable):
146
+
147
+ ```bash
148
+ projboot init --name demo --template typescript --var name=real-package-name --local
149
+ ```
150
+
151
+ Build a layout from a `tree`-style file — directories become paths, leaf files are materialized empty:
152
+
153
+ ```bash
154
+ projboot init-from-tree --name myproject --tree-file examples/tree.txt --gitkeep --local
155
+ ```
156
+
157
+ `--gitkeep` drops a `.gitkeep` in empty directories so they survive; `--force` allows overwriting a non-empty local target directory.
158
+
159
+ ---
160
+
161
+ ## How Templating Works
162
+
163
+ Templates render with Python's `string.Template` (`$name`, `$description`, `$year`, `$holder`, `$arch`, `$outputs_dir`, `$scripts_dir`, `$prompts_file`, plus any `--var`). This is deliberate: Helm's Go-template syntax (`{{ .Values.foo }}`) and GitHub Actions expressions (`${{ secrets.X }}`) contain no bare `$identifier`, so they pass through untouched. `str.format()` or Jinja2 would corrupt them.
164
+
165
+ ## Tests
166
+
167
+ ```bash
168
+ pytest -q
169
+ ```
170
+
171
+ The dirtree parser, template rendering, preset & user store loader, AI agent overlays, CLI (local + GitHub dispatch via mocks), and GitHub helper are all covered without any network access.
@@ -0,0 +1,25 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ agent_bootstrap.egg-info/PKG-INFO
5
+ agent_bootstrap.egg-info/SOURCES.txt
6
+ agent_bootstrap.egg-info/dependency_links.txt
7
+ agent_bootstrap.egg-info/entry_points.txt
8
+ agent_bootstrap.egg-info/requires.txt
9
+ agent_bootstrap.egg-info/top_level.txt
10
+ bootstrapper/__init__.py
11
+ bootstrapper/__main__.py
12
+ bootstrapper/agents.py
13
+ bootstrapper/cli.py
14
+ bootstrapper/composer.py
15
+ bootstrapper/dirtree.py
16
+ bootstrapper/github_utils.py
17
+ bootstrapper/presets.py
18
+ bootstrapper/templates.py
19
+ tests/test_agents.py
20
+ tests/test_cli.py
21
+ tests/test_composer.py
22
+ tests/test_dirtree.py
23
+ tests/test_github_utils.py
24
+ tests/test_presets.py
25
+ tests/test_templates.py
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ agent-bootstrap = bootstrapper.cli:app
3
+ projboot = bootstrapper.cli:app
@@ -0,0 +1,6 @@
1
+ typer>=0.9
2
+ PyGithub>=2.0
3
+
4
+ [dev]
5
+ pytest>=8
6
+ build>=1.0
@@ -0,0 +1 @@
1
+ bootstrapper
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,3 @@
1
+ from .cli import app
2
+
3
+ app()