reposeed 0.4.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.
- reposeed-0.4.0/LICENSE +21 -0
- reposeed-0.4.0/PKG-INFO +248 -0
- reposeed-0.4.0/README.md +227 -0
- reposeed-0.4.0/pyproject.toml +70 -0
- reposeed-0.4.0/pyproject.toml.orig +61 -0
- reposeed-0.4.0/src/reposeed/__init__.py +10 -0
- reposeed-0.4.0/src/reposeed/__main__.py +3 -0
- reposeed-0.4.0/src/reposeed/cli.py +232 -0
- reposeed-0.4.0/src/reposeed/constants.py +35 -0
- reposeed-0.4.0/src/reposeed/detect.py +89 -0
- reposeed-0.4.0/src/reposeed/doctor.py +122 -0
- reposeed-0.4.0/src/reposeed/errors.py +4 -0
- reposeed-0.4.0/src/reposeed/foundation/AGENTS.md +108 -0
- reposeed-0.4.0/src/reposeed/foundation/CHANGELOG.md +5 -0
- reposeed-0.4.0/src/reposeed/foundation/GRAPHIFY.md +96 -0
- reposeed-0.4.0/src/reposeed/foundation/OPERATING_GUIDELINES.md +102 -0
- reposeed-0.4.0/src/reposeed/foundation/PLATFORM_SUPPORT.md +69 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/flutter/flutter-conventions/SKILL.md +39 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/flutter/flutter-conventions/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/node/node-conventions/SKILL.md +37 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/node/node-conventions/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/php/php-conventions/SKILL.md +35 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/php/php-conventions/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/python/python-conventions/SKILL.md +39 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/python/python-conventions/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/clarify-before-building/SKILL.md +61 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/clarify-before-building/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/code-review/SKILL.md +86 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/code-review/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/commit-messages/SKILL.md +67 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/commit-messages/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/compounding-knowledge/SKILL.md +59 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/compounding-knowledge/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/diagnosing-bugs/SKILL.md +89 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/diagnosing-bugs/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/maintain-changelog/SKILL.md +60 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/maintain-changelog/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/pr-description/SKILL.md +55 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/pr-description/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/security-checklist/SKILL.md +66 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/security-checklist/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/tdd/SKILL.md +79 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/tdd/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/verification-before-completion/SKILL.md +74 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/verification-before-completion/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/writing-plans/SKILL.md +89 -0
- reposeed-0.4.0/src/reposeed/foundation/skills/universal/writing-plans/agents/openai.yaml +4 -0
- reposeed-0.4.0/src/reposeed/graphify.py +556 -0
- reposeed-0.4.0/src/reposeed/initializer.py +328 -0
- reposeed-0.4.0/src/reposeed/managed_file.py +147 -0
- reposeed-0.4.0/src/reposeed/templates.py +66 -0
- reposeed-0.4.0/src/reposeed/validation.py +26 -0
reposeed-0.4.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 RepoSeed contributors
|
|
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.
|
reposeed-0.4.0/PKG-INFO
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: reposeed
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: Initialize portable AI coding standards and skills for Codex, Claude Code, Cursor, and Antigravity.
|
|
5
|
+
Keywords: agent-skills,codex,claude-code,cursor,antigravity,ai-coding
|
|
6
|
+
Author: RepoSeed contributors
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
|
+
Requires-Dist: graphifyy==0.9.49
|
|
19
|
+
Requires-Python: >=3.10
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# RepoSeed
|
|
23
|
+
|
|
24
|
+
Initialize a project-wide AI coding foundation for Codex, Claude Code, Cursor,
|
|
25
|
+
and Google Antigravity with one uv command:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
uvx reposeed init
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`uv` is the only prerequisite. It runs RepoSeed in an isolated Python
|
|
32
|
+
environment and automatically provides a compatible Python interpreter when the
|
|
33
|
+
machine does not already have one. Graphify is a pinned dependency of that same
|
|
34
|
+
environment, so RepoSeed never bootstraps uv, invokes pip, or relies on a
|
|
35
|
+
global `graphify` executable.
|
|
36
|
+
|
|
37
|
+
The initializer installs portable Agent Skills, shared engineering guidance,
|
|
38
|
+
repository-aware commands, platform adapters, and the managed Graphify setup.
|
|
39
|
+
It is safe to rerun: marked instruction blocks are merged, generated files are
|
|
40
|
+
tracked by hash, and local edits are reported as conflicts instead of silently
|
|
41
|
+
overwritten.
|
|
42
|
+
|
|
43
|
+
## Quick start
|
|
44
|
+
|
|
45
|
+
Run interactively from the project you want to configure:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
uvx reposeed init
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Or configure it non-interactively:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
uvx reposeed init ./my-project \
|
|
55
|
+
--platforms codex,claude,cursor,antigravity \
|
|
56
|
+
--stacks node,python \
|
|
57
|
+
--yes
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Preview without writing:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
uvx reposeed init --dry-run --yes
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Validate an installation:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
uvx reposeed doctor
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Pin a specific RepoSeed release when reproducibility across a team or CI
|
|
73
|
+
matters:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
uvx reposeed==0.4.0 init --yes
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## What is generated
|
|
80
|
+
|
|
81
|
+
| Path | Purpose |
|
|
82
|
+
|---|---|
|
|
83
|
+
| `AGENTS.md` | Shared, always-on engineering behavior in a managed block |
|
|
84
|
+
| `AGENTS.local.md` | Detected project commands and repository-specific notes |
|
|
85
|
+
| `CHANGELOG.md` | Dated, commit-aligned project history for humans and agents |
|
|
86
|
+
| `.agents/skills/` | Canonical Agent Skills for Codex, Cursor, and Antigravity |
|
|
87
|
+
| `CLAUDE.md` | Claude bridge to the shared instructions, when selected |
|
|
88
|
+
| `.claude/skills/` | Managed Claude Code skill mirror, when selected |
|
|
89
|
+
| `.reposeed/config.json` | Selected platforms, stacks, and integrations |
|
|
90
|
+
| `.reposeed/graphify.json` | Pinned Graphify version and managed platforms |
|
|
91
|
+
| `.reposeed/manifest.json` | File hashes used for conflict-safe updates |
|
|
92
|
+
| `.reposeed/guides/` | Operating, platform, and Graphify references |
|
|
93
|
+
|
|
94
|
+
Universal skills cover clarification, planning, diagnosis, test-driven
|
|
95
|
+
development, code review, evidence-based completion, changelog maintenance,
|
|
96
|
+
commits, pull requests, security review, and compounding repository knowledge.
|
|
97
|
+
Stack skills are available for Node.js/TypeScript, Python, PHP, and
|
|
98
|
+
Flutter/Dart. Stack detection reads the target project's standard manifests
|
|
99
|
+
and lockfiles.
|
|
100
|
+
|
|
101
|
+
## Commands and options
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
reposeed init [directory]
|
|
105
|
+
-p, --platforms <names> codex, claude, cursor, antigravity
|
|
106
|
+
-s, --stacks <names> node, python, php, flutter
|
|
107
|
+
-y, --yes accept defaults without prompts
|
|
108
|
+
--no-graphify skip managed Graphify integration
|
|
109
|
+
--graphify-git-hooks explicitly enable the default Graphify Git hooks
|
|
110
|
+
--no-graphify-git-hooks skip or remove the default Graphify Git hooks
|
|
111
|
+
--dry-run show planned changes
|
|
112
|
+
--force replace conflicting generated files
|
|
113
|
+
--json emit machine-readable output
|
|
114
|
+
|
|
115
|
+
reposeed doctor [directory]
|
|
116
|
+
--json emit machine-readable output
|
|
117
|
+
|
|
118
|
+
reposeed graphify <arguments...>
|
|
119
|
+
run the pinned Graphify CLI in the same uvx environment
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
With `--yes`, all four platforms are selected and application stacks are
|
|
123
|
+
auto-detected unless explicit lists are supplied. Pass `--stacks ""` for
|
|
124
|
+
universal skills only.
|
|
125
|
+
|
|
126
|
+
On an initialized project, `--platforms` and `--stacks` are additive. For
|
|
127
|
+
example, initializing Antigravity first and later running with
|
|
128
|
+
`--platforms codex` retains Antigravity and adds Codex. Removing a platform is
|
|
129
|
+
never inferred from an omitted command-line value.
|
|
130
|
+
|
|
131
|
+
## Safe update behavior
|
|
132
|
+
|
|
133
|
+
`AGENTS.md`, `AGENTS.local.md`, and `CLAUDE.md` use explicit managed markers.
|
|
134
|
+
Only the content between those markers is updated, preserving project guidance
|
|
135
|
+
and sections maintained by tools such as Graphify.
|
|
136
|
+
|
|
137
|
+
Other generated files are replaced only when their current content matches the
|
|
138
|
+
last manifest. If a person edited one, initialization preserves it, reports a
|
|
139
|
+
conflict, and exits with code 2. Review the change and rerun with `--force` only
|
|
140
|
+
when replacement is intentional.
|
|
141
|
+
|
|
142
|
+
The initializer never deletes stale platform files automatically. Removing
|
|
143
|
+
configuration is a destructive decision and remains explicit. `--force` only
|
|
144
|
+
authorizes replacement of conflicting RepoSeed-generated files; it does
|
|
145
|
+
not authorize replacement of pre-existing Graphify skills, rules, or workflows.
|
|
146
|
+
|
|
147
|
+
## Graphify
|
|
148
|
+
|
|
149
|
+
Graphify `0.9.49` is enabled by default and pinned in `pyproject.toml`. During
|
|
150
|
+
`init`, RepoSeed verifies the installed dependency and invokes it as:
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
<uvx-python> -m graphify <platform> install --project
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
This avoids every global PATH and interpreter-discovery problem. The native
|
|
157
|
+
Graphify skill is also adapted to resolve the exact RepoSeed environment
|
|
158
|
+
through uvx. Its core setup will not recommend `pip install`, `uv tool install`,
|
|
159
|
+
or an unpinned Graphify upgrade. The managed package intentionally omits LLM
|
|
160
|
+
backend extras.
|
|
161
|
+
|
|
162
|
+
An existing standalone Graphify installation is left installed and unchanged.
|
|
163
|
+
If a project already contains a complete Graphify adapter, initialization keeps
|
|
164
|
+
its files and only refreshes the recognizable RepoSeed runtime block and
|
|
165
|
+
Graphify hook command. If an adapter is partial, missing files are repaired and
|
|
166
|
+
all pre-existing Graphify-owned files are restored afterward. Existing
|
|
167
|
+
`graphify-out/` data is never changed by `init`.
|
|
168
|
+
|
|
169
|
+
On a project where Graphify is already managed, `--no-graphify` skips adding it
|
|
170
|
+
to newly selected platforms; it does not uninstall or disable the platforms
|
|
171
|
+
that already use it.
|
|
172
|
+
|
|
173
|
+
Initialization configures the integration but does not build a graph because it
|
|
174
|
+
may run before a project contains source code. The managed integration is
|
|
175
|
+
strictly AST-only: it never sends repository content to an LLM, extracts
|
|
176
|
+
semantic document/media context, or labels communities with an LLM. Build the
|
|
177
|
+
code graph from the terminal:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
uvx reposeed graphify extract . --code-only
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The wrapper adds `--code-only` when omitted, adds `--no-label` to
|
|
184
|
+
`cluster-only`, and rejects semantic-only commands and flags. Installed agent
|
|
185
|
+
skills carry the same mandatory policy.
|
|
186
|
+
|
|
187
|
+
The graph is written under `graphify-out/`. After code changes, run:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
uvx reposeed graphify update .
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Initialized guidance starts with targeted source slices and budgeted `query`,
|
|
194
|
+
`path`, or `explain` calls instead of loading full reports or raw graph data.
|
|
195
|
+
The managed update command is a complete AST-only refresh: it updates
|
|
196
|
+
symbols, calls, imports, inheritance, and other structural relationships with
|
|
197
|
+
no LLM or API cost. Documents, papers, images, audio, and video are outside the
|
|
198
|
+
managed graph's scope.
|
|
199
|
+
|
|
200
|
+
Code graphs refresh automatically after commits and branch switches because
|
|
201
|
+
Graphify's Git hooks are installed by default. For a non-Git project or a team
|
|
202
|
+
that does not want repository hooks, opt out explicitly:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
uvx reposeed init --no-graphify-git-hooks
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Graphify adds to existing Git hooks instead of replacing them and also
|
|
209
|
+
registers its merge driver for `graphify-out/graph.json`. The initializer
|
|
210
|
+
records the setting and `doctor` verifies the installation. This automation
|
|
211
|
+
handles code and deletions and never schedules semantic work.
|
|
212
|
+
|
|
213
|
+
See
|
|
214
|
+
[`src/reposeed/foundation/GRAPHIFY.md`](src/reposeed/foundation/GRAPHIFY.md)
|
|
215
|
+
for the operating model.
|
|
216
|
+
|
|
217
|
+
## Platform conventions
|
|
218
|
+
|
|
219
|
+
The canonical layout follows the open
|
|
220
|
+
[Agent Skills specification](https://agentskills.io/specification). Current
|
|
221
|
+
discovery paths and primary sources are recorded in
|
|
222
|
+
[`PLATFORM_SUPPORT.md`](src/reposeed/foundation/PLATFORM_SUPPORT.md).
|
|
223
|
+
|
|
224
|
+
## Development and publishing
|
|
225
|
+
|
|
226
|
+
Development requires uv; Python and all dependencies are managed by it:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
uv sync --all-groups
|
|
230
|
+
uv run ruff check .
|
|
231
|
+
uv run ruff format --check .
|
|
232
|
+
uv run pytest
|
|
233
|
+
uv build --no-sources
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Install the current checkout as a local editable uv tool while developing:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
uv tool install --editable --force .
|
|
240
|
+
uvx reposeed --version
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Test the built wheel through uvx before publishing, then publish to PyPI:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
uvx --refresh --from ./dist/reposeed-0.4.0-py3-none-any.whl reposeed --version
|
|
247
|
+
uv publish
|
|
248
|
+
```
|
reposeed-0.4.0/README.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# RepoSeed
|
|
2
|
+
|
|
3
|
+
Initialize a project-wide AI coding foundation for Codex, Claude Code, Cursor,
|
|
4
|
+
and Google Antigravity with one uv command:
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
uvx reposeed init
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`uv` is the only prerequisite. It runs RepoSeed in an isolated Python
|
|
11
|
+
environment and automatically provides a compatible Python interpreter when the
|
|
12
|
+
machine does not already have one. Graphify is a pinned dependency of that same
|
|
13
|
+
environment, so RepoSeed never bootstraps uv, invokes pip, or relies on a
|
|
14
|
+
global `graphify` executable.
|
|
15
|
+
|
|
16
|
+
The initializer installs portable Agent Skills, shared engineering guidance,
|
|
17
|
+
repository-aware commands, platform adapters, and the managed Graphify setup.
|
|
18
|
+
It is safe to rerun: marked instruction blocks are merged, generated files are
|
|
19
|
+
tracked by hash, and local edits are reported as conflicts instead of silently
|
|
20
|
+
overwritten.
|
|
21
|
+
|
|
22
|
+
## Quick start
|
|
23
|
+
|
|
24
|
+
Run interactively from the project you want to configure:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
uvx reposeed init
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or configure it non-interactively:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
uvx reposeed init ./my-project \
|
|
34
|
+
--platforms codex,claude,cursor,antigravity \
|
|
35
|
+
--stacks node,python \
|
|
36
|
+
--yes
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Preview without writing:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
uvx reposeed init --dry-run --yes
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Validate an installation:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
uvx reposeed doctor
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Pin a specific RepoSeed release when reproducibility across a team or CI
|
|
52
|
+
matters:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
uvx reposeed==0.4.0 init --yes
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## What is generated
|
|
59
|
+
|
|
60
|
+
| Path | Purpose |
|
|
61
|
+
|---|---|
|
|
62
|
+
| `AGENTS.md` | Shared, always-on engineering behavior in a managed block |
|
|
63
|
+
| `AGENTS.local.md` | Detected project commands and repository-specific notes |
|
|
64
|
+
| `CHANGELOG.md` | Dated, commit-aligned project history for humans and agents |
|
|
65
|
+
| `.agents/skills/` | Canonical Agent Skills for Codex, Cursor, and Antigravity |
|
|
66
|
+
| `CLAUDE.md` | Claude bridge to the shared instructions, when selected |
|
|
67
|
+
| `.claude/skills/` | Managed Claude Code skill mirror, when selected |
|
|
68
|
+
| `.reposeed/config.json` | Selected platforms, stacks, and integrations |
|
|
69
|
+
| `.reposeed/graphify.json` | Pinned Graphify version and managed platforms |
|
|
70
|
+
| `.reposeed/manifest.json` | File hashes used for conflict-safe updates |
|
|
71
|
+
| `.reposeed/guides/` | Operating, platform, and Graphify references |
|
|
72
|
+
|
|
73
|
+
Universal skills cover clarification, planning, diagnosis, test-driven
|
|
74
|
+
development, code review, evidence-based completion, changelog maintenance,
|
|
75
|
+
commits, pull requests, security review, and compounding repository knowledge.
|
|
76
|
+
Stack skills are available for Node.js/TypeScript, Python, PHP, and
|
|
77
|
+
Flutter/Dart. Stack detection reads the target project's standard manifests
|
|
78
|
+
and lockfiles.
|
|
79
|
+
|
|
80
|
+
## Commands and options
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
reposeed init [directory]
|
|
84
|
+
-p, --platforms <names> codex, claude, cursor, antigravity
|
|
85
|
+
-s, --stacks <names> node, python, php, flutter
|
|
86
|
+
-y, --yes accept defaults without prompts
|
|
87
|
+
--no-graphify skip managed Graphify integration
|
|
88
|
+
--graphify-git-hooks explicitly enable the default Graphify Git hooks
|
|
89
|
+
--no-graphify-git-hooks skip or remove the default Graphify Git hooks
|
|
90
|
+
--dry-run show planned changes
|
|
91
|
+
--force replace conflicting generated files
|
|
92
|
+
--json emit machine-readable output
|
|
93
|
+
|
|
94
|
+
reposeed doctor [directory]
|
|
95
|
+
--json emit machine-readable output
|
|
96
|
+
|
|
97
|
+
reposeed graphify <arguments...>
|
|
98
|
+
run the pinned Graphify CLI in the same uvx environment
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
With `--yes`, all four platforms are selected and application stacks are
|
|
102
|
+
auto-detected unless explicit lists are supplied. Pass `--stacks ""` for
|
|
103
|
+
universal skills only.
|
|
104
|
+
|
|
105
|
+
On an initialized project, `--platforms` and `--stacks` are additive. For
|
|
106
|
+
example, initializing Antigravity first and later running with
|
|
107
|
+
`--platforms codex` retains Antigravity and adds Codex. Removing a platform is
|
|
108
|
+
never inferred from an omitted command-line value.
|
|
109
|
+
|
|
110
|
+
## Safe update behavior
|
|
111
|
+
|
|
112
|
+
`AGENTS.md`, `AGENTS.local.md`, and `CLAUDE.md` use explicit managed markers.
|
|
113
|
+
Only the content between those markers is updated, preserving project guidance
|
|
114
|
+
and sections maintained by tools such as Graphify.
|
|
115
|
+
|
|
116
|
+
Other generated files are replaced only when their current content matches the
|
|
117
|
+
last manifest. If a person edited one, initialization preserves it, reports a
|
|
118
|
+
conflict, and exits with code 2. Review the change and rerun with `--force` only
|
|
119
|
+
when replacement is intentional.
|
|
120
|
+
|
|
121
|
+
The initializer never deletes stale platform files automatically. Removing
|
|
122
|
+
configuration is a destructive decision and remains explicit. `--force` only
|
|
123
|
+
authorizes replacement of conflicting RepoSeed-generated files; it does
|
|
124
|
+
not authorize replacement of pre-existing Graphify skills, rules, or workflows.
|
|
125
|
+
|
|
126
|
+
## Graphify
|
|
127
|
+
|
|
128
|
+
Graphify `0.9.49` is enabled by default and pinned in `pyproject.toml`. During
|
|
129
|
+
`init`, RepoSeed verifies the installed dependency and invokes it as:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
<uvx-python> -m graphify <platform> install --project
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
This avoids every global PATH and interpreter-discovery problem. The native
|
|
136
|
+
Graphify skill is also adapted to resolve the exact RepoSeed environment
|
|
137
|
+
through uvx. Its core setup will not recommend `pip install`, `uv tool install`,
|
|
138
|
+
or an unpinned Graphify upgrade. The managed package intentionally omits LLM
|
|
139
|
+
backend extras.
|
|
140
|
+
|
|
141
|
+
An existing standalone Graphify installation is left installed and unchanged.
|
|
142
|
+
If a project already contains a complete Graphify adapter, initialization keeps
|
|
143
|
+
its files and only refreshes the recognizable RepoSeed runtime block and
|
|
144
|
+
Graphify hook command. If an adapter is partial, missing files are repaired and
|
|
145
|
+
all pre-existing Graphify-owned files are restored afterward. Existing
|
|
146
|
+
`graphify-out/` data is never changed by `init`.
|
|
147
|
+
|
|
148
|
+
On a project where Graphify is already managed, `--no-graphify` skips adding it
|
|
149
|
+
to newly selected platforms; it does not uninstall or disable the platforms
|
|
150
|
+
that already use it.
|
|
151
|
+
|
|
152
|
+
Initialization configures the integration but does not build a graph because it
|
|
153
|
+
may run before a project contains source code. The managed integration is
|
|
154
|
+
strictly AST-only: it never sends repository content to an LLM, extracts
|
|
155
|
+
semantic document/media context, or labels communities with an LLM. Build the
|
|
156
|
+
code graph from the terminal:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
uvx reposeed graphify extract . --code-only
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
The wrapper adds `--code-only` when omitted, adds `--no-label` to
|
|
163
|
+
`cluster-only`, and rejects semantic-only commands and flags. Installed agent
|
|
164
|
+
skills carry the same mandatory policy.
|
|
165
|
+
|
|
166
|
+
The graph is written under `graphify-out/`. After code changes, run:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
uvx reposeed graphify update .
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Initialized guidance starts with targeted source slices and budgeted `query`,
|
|
173
|
+
`path`, or `explain` calls instead of loading full reports or raw graph data.
|
|
174
|
+
The managed update command is a complete AST-only refresh: it updates
|
|
175
|
+
symbols, calls, imports, inheritance, and other structural relationships with
|
|
176
|
+
no LLM or API cost. Documents, papers, images, audio, and video are outside the
|
|
177
|
+
managed graph's scope.
|
|
178
|
+
|
|
179
|
+
Code graphs refresh automatically after commits and branch switches because
|
|
180
|
+
Graphify's Git hooks are installed by default. For a non-Git project or a team
|
|
181
|
+
that does not want repository hooks, opt out explicitly:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
uvx reposeed init --no-graphify-git-hooks
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Graphify adds to existing Git hooks instead of replacing them and also
|
|
188
|
+
registers its merge driver for `graphify-out/graph.json`. The initializer
|
|
189
|
+
records the setting and `doctor` verifies the installation. This automation
|
|
190
|
+
handles code and deletions and never schedules semantic work.
|
|
191
|
+
|
|
192
|
+
See
|
|
193
|
+
[`src/reposeed/foundation/GRAPHIFY.md`](src/reposeed/foundation/GRAPHIFY.md)
|
|
194
|
+
for the operating model.
|
|
195
|
+
|
|
196
|
+
## Platform conventions
|
|
197
|
+
|
|
198
|
+
The canonical layout follows the open
|
|
199
|
+
[Agent Skills specification](https://agentskills.io/specification). Current
|
|
200
|
+
discovery paths and primary sources are recorded in
|
|
201
|
+
[`PLATFORM_SUPPORT.md`](src/reposeed/foundation/PLATFORM_SUPPORT.md).
|
|
202
|
+
|
|
203
|
+
## Development and publishing
|
|
204
|
+
|
|
205
|
+
Development requires uv; Python and all dependencies are managed by it:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
uv sync --all-groups
|
|
209
|
+
uv run ruff check .
|
|
210
|
+
uv run ruff format --check .
|
|
211
|
+
uv run pytest
|
|
212
|
+
uv build --no-sources
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Install the current checkout as a local editable uv tool while developing:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
uv tool install --editable --force .
|
|
219
|
+
uvx reposeed --version
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Test the built wheel through uvx before publishing, then publish to PyPI:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
uvx --refresh --from ./dist/reposeed-0.4.0-py3-none-any.whl reposeed --version
|
|
226
|
+
uv publish
|
|
227
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "reposeed"
|
|
3
|
+
version = "0.4.0"
|
|
4
|
+
description = "Initialize portable AI coding standards and skills for Codex, Claude Code, Cursor, and Antigravity."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
license-files = ["LICENSE"]
|
|
9
|
+
keywords = [
|
|
10
|
+
"agent-skills",
|
|
11
|
+
"codex",
|
|
12
|
+
"claude-code",
|
|
13
|
+
"cursor",
|
|
14
|
+
"antigravity",
|
|
15
|
+
"ai-coding",
|
|
16
|
+
]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Development Status :: 3 - Alpha",
|
|
19
|
+
"Environment :: Console",
|
|
20
|
+
"License :: OSI Approved :: MIT License",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3.10",
|
|
23
|
+
"Programming Language :: Python :: 3.11",
|
|
24
|
+
"Programming Language :: Python :: 3.12",
|
|
25
|
+
"Programming Language :: Python :: 3.13",
|
|
26
|
+
"Programming Language :: Python :: 3.14",
|
|
27
|
+
]
|
|
28
|
+
dependencies = ["graphifyy==0.9.49"]
|
|
29
|
+
|
|
30
|
+
[[project.authors]]
|
|
31
|
+
name = "RepoSeed contributors"
|
|
32
|
+
|
|
33
|
+
[project.scripts]
|
|
34
|
+
reposeed = "reposeed.cli:main"
|
|
35
|
+
|
|
36
|
+
[dependency-groups]
|
|
37
|
+
dev = [
|
|
38
|
+
"pytest>=8.3,<10",
|
|
39
|
+
"ruff>=0.12,<1",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[build-system]
|
|
43
|
+
requires = ["uv_build>=0.12.5,<0.13"]
|
|
44
|
+
build-backend = "uv_build"
|
|
45
|
+
|
|
46
|
+
[tool.pytest.ini_options]
|
|
47
|
+
addopts = "-q"
|
|
48
|
+
testpaths = ["tests"]
|
|
49
|
+
|
|
50
|
+
[tool.ruff]
|
|
51
|
+
line-length = 100
|
|
52
|
+
target-version = "py310"
|
|
53
|
+
|
|
54
|
+
[tool.ruff.lint]
|
|
55
|
+
select = [
|
|
56
|
+
"E",
|
|
57
|
+
"F",
|
|
58
|
+
"I",
|
|
59
|
+
"UP",
|
|
60
|
+
"B",
|
|
61
|
+
"SIM",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
[tool.uv.build-backend]
|
|
65
|
+
source-exclude = [
|
|
66
|
+
"/.pytest_cache",
|
|
67
|
+
"/.ruff_cache",
|
|
68
|
+
"/dist",
|
|
69
|
+
"/node_modules",
|
|
70
|
+
]
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "reposeed"
|
|
3
|
+
version = "0.4.0"
|
|
4
|
+
description = "Initialize portable AI coding standards and skills for Codex, Claude Code, Cursor, and Antigravity."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
license = "MIT"
|
|
8
|
+
license-files = ["LICENSE"]
|
|
9
|
+
authors = [{ name = "RepoSeed contributors" }]
|
|
10
|
+
keywords = [
|
|
11
|
+
"agent-skills",
|
|
12
|
+
"codex",
|
|
13
|
+
"claude-code",
|
|
14
|
+
"cursor",
|
|
15
|
+
"antigravity",
|
|
16
|
+
"ai-coding",
|
|
17
|
+
]
|
|
18
|
+
classifiers = [
|
|
19
|
+
"Development Status :: 3 - Alpha",
|
|
20
|
+
"Environment :: Console",
|
|
21
|
+
"License :: OSI Approved :: MIT License",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
28
|
+
]
|
|
29
|
+
dependencies = ["graphifyy==0.9.49"]
|
|
30
|
+
|
|
31
|
+
[project.scripts]
|
|
32
|
+
reposeed = "reposeed.cli:main"
|
|
33
|
+
|
|
34
|
+
[dependency-groups]
|
|
35
|
+
dev = [
|
|
36
|
+
"pytest>=8.3,<10",
|
|
37
|
+
"ruff>=0.12,<1",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[build-system]
|
|
41
|
+
requires = ["uv_build>=0.12.5,<0.13"]
|
|
42
|
+
build-backend = "uv_build"
|
|
43
|
+
|
|
44
|
+
[tool.pytest.ini_options]
|
|
45
|
+
addopts = "-q"
|
|
46
|
+
testpaths = ["tests"]
|
|
47
|
+
|
|
48
|
+
[tool.ruff]
|
|
49
|
+
line-length = 100
|
|
50
|
+
target-version = "py310"
|
|
51
|
+
|
|
52
|
+
[tool.ruff.lint]
|
|
53
|
+
select = ["E", "F", "I", "UP", "B", "SIM"]
|
|
54
|
+
|
|
55
|
+
[tool.uv.build-backend]
|
|
56
|
+
source-exclude = [
|
|
57
|
+
"/.pytest_cache",
|
|
58
|
+
"/.ruff_cache",
|
|
59
|
+
"/dist",
|
|
60
|
+
"/node_modules",
|
|
61
|
+
]
|