ai-forge-cli 2.1.0__tar.gz → 2.1.3__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.
- ai_forge_cli-2.1.3/PKG-INFO +173 -0
- ai_forge_cli-2.1.3/README.md +158 -0
- ai_forge_cli-2.1.3/pyproject.toml +63 -0
- ai_forge_cli-2.1.3/src/ai_forge_cli.egg-info/PKG-INFO +173 -0
- ai_forge_cli-2.1.3/src/ai_forge_cli.egg-info/SOURCES.txt +24 -0
- ai_forge_cli-2.1.3/src/ai_forge_cli.egg-info/requires.txt +9 -0
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/src/cli/__init__.py +1 -1
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/src/cli/__main__.py +0 -1
- ai_forge_cli-2.1.3/src/cli/assets/audit_template.html +1661 -0
- ai_forge_cli-2.1.3/src/cli/assets/forge_full_logo.drawio.svg +4 -0
- ai_forge_cli-2.1.3/src/cli/assets/forge_white_small.drawio.svg +4 -0
- ai_forge_cli-2.1.3/src/cli/commands/__init__.py +5 -0
- ai_forge_cli-2.1.3/src/cli/commands/audit.py +1133 -0
- ai_forge_cli-2.1.3/src/cli/commands/base.py +12 -0
- ai_forge_cli-2.1.3/src/cli/commands/context.py +537 -0
- ai_forge_cli-2.1.3/src/cli/commands/init.py +456 -0
- ai_forge_cli-2.1.3/src/cli/common.py +35 -0
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/src/cli/forge.py +6 -9
- ai_forge_cli-2.1.3/src/cli/resources/FRAMEWORK_V3.md +184 -0
- ai_forge_cli-2.1.3/src/cli/resources/SCHEMA_REFERENCE_V3.md +1583 -0
- ai_forge_cli-2.1.3/src/cli/schema.py +316 -0
- ai_forge_cli-2.1.3/tests/test_context.py +215 -0
- ai_forge_cli-2.1.0/LICENSE +0 -21
- ai_forge_cli-2.1.0/PKG-INFO +0 -98
- ai_forge_cli-2.1.0/README.md +0 -72
- ai_forge_cli-2.1.0/pyproject.toml +0 -56
- ai_forge_cli-2.1.0/src/ai_forge_cli.egg-info/PKG-INFO +0 -98
- ai_forge_cli-2.1.0/src/ai_forge_cli.egg-info/SOURCES.txt +0 -38
- ai_forge_cli-2.1.0/src/ai_forge_cli.egg-info/requires.txt +0 -4
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-build/SKILL.md +0 -163
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-cast/SKILL.md +0 -108
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-discover/SKILL.md +0 -203
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-plan/SKILL.md +0 -128
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-review/SKILL.md +0 -137
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-spec/SKILL.md +0 -225
- ai_forge_cli-2.1.0/src/cli/assets/agents_skills/forge-validate/SKILL.md +0 -116
- ai_forge_cli-2.1.0/src/cli/assets/docs/forge-v2-architecture.md +0 -594
- ai_forge_cli-2.1.0/src/cli/assets/docs/forge-v2-schema.md +0 -802
- ai_forge_cli-2.1.0/src/cli/assets/frameworks/cast/FRAMEWORK.md +0 -32
- ai_forge_cli-2.1.0/src/cli/assets/frameworks/discover/FRAMEWORK.md +0 -68
- ai_forge_cli-2.1.0/src/cli/assets/frameworks/plan/FRAMEWORK.md +0 -35
- ai_forge_cli-2.1.0/src/cli/assets/frameworks/review/FRAMEWORK.md +0 -30
- ai_forge_cli-2.1.0/src/cli/assets/frameworks/spec/FRAMEWORK.md +0 -60
- ai_forge_cli-2.1.0/src/cli/assets/frameworks/validate/FRAMEWORK.md +0 -31
- ai_forge_cli-2.1.0/src/cli/commands/__init__.py +0 -11
- ai_forge_cli-2.1.0/src/cli/commands/base.py +0 -17
- ai_forge_cli-2.1.0/src/cli/commands/context.py +0 -283
- ai_forge_cli-2.1.0/src/cli/commands/graph.py +0 -1042
- ai_forge_cli-2.1.0/src/cli/commands/init.py +0 -461
- ai_forge_cli-2.1.0/src/cli/commands/list.py +0 -114
- ai_forge_cli-2.1.0/src/cli/common.py +0 -32
- ai_forge_cli-2.1.0/src/cli/schema.py +0 -148
- ai_forge_cli-2.1.0/src/cli/workbench.py +0 -34
- ai_forge_cli-2.1.0/tests/test_cli.py +0 -146
- ai_forge_cli-2.1.0/tests/test_examples.py +0 -32
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/setup.cfg +0 -0
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/src/ai_forge_cli.egg-info/dependency_links.txt +0 -0
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/src/ai_forge_cli.egg-info/entry_points.txt +0 -0
- {ai_forge_cli-2.1.0 → ai_forge_cli-2.1.3}/src/ai_forge_cli.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-forge-cli
|
|
3
|
+
Version: 2.1.3
|
|
4
|
+
Summary: Forge V3 context CLI
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: pyyaml>=6.0
|
|
8
|
+
Provides-Extra: dev
|
|
9
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
10
|
+
Requires-Dist: mypy>=1.15; extra == "dev"
|
|
11
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
12
|
+
Requires-Dist: ruff>=0.11; extra == "dev"
|
|
13
|
+
Requires-Dist: twine>=5.1; extra == "dev"
|
|
14
|
+
Requires-Dist: types-PyYAML>=6.0.12; extra == "dev"
|
|
15
|
+
|
|
16
|
+
# Forge
|
|
17
|
+
|
|
18
|
+
Forge is a Python CLI and framework for vertical-first system design and
|
|
19
|
+
delivery. It helps you define a system clearly, split it into buildable
|
|
20
|
+
verticals, and then deepen and implement one slice at a time with the minimum
|
|
21
|
+
context needed for the task at hand.
|
|
22
|
+
|
|
23
|
+
Forge is **skills-first**. The skills drive the work. The CLI exists to provide
|
|
24
|
+
scoped context, validation, and audit artifacts to the active skill.
|
|
25
|
+
|
|
26
|
+
## What This Repository Contains
|
|
27
|
+
|
|
28
|
+
- `src/cli`: the Forge CLI implementation
|
|
29
|
+
- `skills/`: the Forge skill source used by initialized repositories
|
|
30
|
+
- `FRAMEWORK_V3.md`: the framework process and recommended authoring order used to seed `forge/FRAMEWORK_V3.md`
|
|
31
|
+
- `SCHEMA_REFERENCE_V3.md`: the schema contract and field rules used to seed `forge/SCHEMA_REFERENCE_V3.md`
|
|
32
|
+
- `examples/`: example Forge repositories and audit artifacts
|
|
33
|
+
|
|
34
|
+
## CLI Commands
|
|
35
|
+
|
|
36
|
+
- `forge init`: scaffold a new Forge workspace and explain how to use it
|
|
37
|
+
- `forge context`: render scoped context for a system, vertical, flow,
|
|
38
|
+
container, or component
|
|
39
|
+
- `forge audit`: generate a self-contained architecture audit dashboard
|
|
40
|
+
|
|
41
|
+
## What Forge Is
|
|
42
|
+
|
|
43
|
+
- a framework for capturing architectural truth before implementation detail
|
|
44
|
+
- a skills-first workflow for moving from broad system design to one thin
|
|
45
|
+
vertical at a time
|
|
46
|
+
- a scoped context generator for build, review, and security tasks
|
|
47
|
+
- an audit artifact generator for human review
|
|
48
|
+
|
|
49
|
+
## What Forge Is Not
|
|
50
|
+
|
|
51
|
+
- a generic project scaffolder for arbitrary app stacks
|
|
52
|
+
- a replacement for implementation skills such as build, review, and security
|
|
53
|
+
- a reason to model every payload, component, or environment detail up front
|
|
54
|
+
- an excuse to widen a vertical beyond what can be built and validated cleanly
|
|
55
|
+
|
|
56
|
+
## Recommended Workflow
|
|
57
|
+
|
|
58
|
+
1. Run `forge init` in an empty repository.
|
|
59
|
+
2. Read:
|
|
60
|
+
- `forge/USING_FORGE.md`
|
|
61
|
+
- `forge/FRAMEWORK_V3.md`
|
|
62
|
+
- `forge/SCHEMA_REFERENCE_V3.md`
|
|
63
|
+
3. Use `forge-schema` to define:
|
|
64
|
+
- `forge/system.yaml`
|
|
65
|
+
- `forge/high_level_flows/`
|
|
66
|
+
- `forge/early_state.yaml`
|
|
67
|
+
- `forge/runtime.yaml`
|
|
68
|
+
4. Derive `forge/verticals/` once the runtime picture is clear.
|
|
69
|
+
5. Pick one vertical and deepen it through:
|
|
70
|
+
- `forge/runtime_flows/`
|
|
71
|
+
- `forge/data_shapes/`
|
|
72
|
+
- `forge/persistent_shapes/`
|
|
73
|
+
- `forge/containers/`
|
|
74
|
+
- `forge/deployment.yaml`
|
|
75
|
+
6. Use `forge-review` to check the slice for drift, bloat, and broken references before build starts.
|
|
76
|
+
7. Use `forge-security` to make the slice security posture explicit before build starts.
|
|
77
|
+
8. Use `forge-build` to plan or implement that approved vertical.
|
|
78
|
+
|
|
79
|
+
The intended operating mode is:
|
|
80
|
+
|
|
81
|
+
1. choose the active skill first
|
|
82
|
+
2. ask that skill what scope it needs
|
|
83
|
+
3. use `forge context` only for that narrow scope
|
|
84
|
+
4. use `forge audit` when you need a whole-system review artifact
|
|
85
|
+
|
|
86
|
+
An initialized repository keeps the Forge-owned schema workspace under `./forge/`. The repo root stays available for product code, app docs, and non-Forge tooling.
|
|
87
|
+
|
|
88
|
+
## Golden Path Examples
|
|
89
|
+
|
|
90
|
+
- `examples/forge_v2_ordering_example`: the compact canonical example for docs,
|
|
91
|
+
smoke tests, and first-time users
|
|
92
|
+
- `examples/forge_v2_fulfillment_control_example`: the richer example used to
|
|
93
|
+
pressure-test flows, data, deployment, and audit rendering
|
|
94
|
+
|
|
95
|
+
## Local Development
|
|
96
|
+
|
|
97
|
+
Use the project virtual environment:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
.venv/bin/python -m pip install -e .[dev]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Validation Commands
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
make lint
|
|
107
|
+
make typecheck
|
|
108
|
+
make test
|
|
109
|
+
make compile
|
|
110
|
+
make build
|
|
111
|
+
make verify-package
|
|
112
|
+
make smoke-init
|
|
113
|
+
make check
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`make verify-package` builds the wheel, installs it into a fresh Python 3.11+
|
|
117
|
+
virtual environment, and confirms that the installed `forge` entrypoint works.
|
|
118
|
+
|
|
119
|
+
## Packaging
|
|
120
|
+
|
|
121
|
+
Build artifacts are generated with:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
.venv/bin/python -m build
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
This produces:
|
|
128
|
+
|
|
129
|
+
- `dist/*.tar.gz`
|
|
130
|
+
- `dist/*.whl`
|
|
131
|
+
|
|
132
|
+
Validate package metadata before release with:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
make check-dist
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Local Testing
|
|
139
|
+
|
|
140
|
+
Run the full local verification path:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
make check
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
That covers linting, type checking, tests, compile validation, build output,
|
|
147
|
+
distribution metadata checks, clean wheel install, and `forge init` smoke
|
|
148
|
+
validation.
|
|
149
|
+
|
|
150
|
+
If you want to test the richer example schema directly:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
EXAMPLE="examples/forge_v2_fulfillment_control_example"
|
|
154
|
+
.venv/bin/forge audit --project-dir "$EXAMPLE" --output /tmp/forge-audit-example.html
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
That generates the audit artifact and opens it unless `--no-open` is supplied.
|
|
158
|
+
|
|
159
|
+
## Framework Notes
|
|
160
|
+
|
|
161
|
+
- Forge is vertical-first: model broadly, then deepen one thin slice.
|
|
162
|
+
- The framework should reduce context, not increase it.
|
|
163
|
+
- Components and exact schemas should only appear when runtime boundaries and
|
|
164
|
+
vertical intent are already clear.
|
|
165
|
+
- Important decisions should be captured in `decision_notes.md`.
|
|
166
|
+
|
|
167
|
+
## Maintainer Notes
|
|
168
|
+
|
|
169
|
+
- Release instructions live in [docs/RELEASING.md](/Users/willdefina/Documents/2026%20-%20Business/dev-tools/forge/docs/RELEASING.md).
|
|
170
|
+
|
|
171
|
+
## Repository Notes
|
|
172
|
+
|
|
173
|
+
Previous iteration artifacts have been retained in `old-forge-v2/`.
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Forge
|
|
2
|
+
|
|
3
|
+
Forge is a Python CLI and framework for vertical-first system design and
|
|
4
|
+
delivery. It helps you define a system clearly, split it into buildable
|
|
5
|
+
verticals, and then deepen and implement one slice at a time with the minimum
|
|
6
|
+
context needed for the task at hand.
|
|
7
|
+
|
|
8
|
+
Forge is **skills-first**. The skills drive the work. The CLI exists to provide
|
|
9
|
+
scoped context, validation, and audit artifacts to the active skill.
|
|
10
|
+
|
|
11
|
+
## What This Repository Contains
|
|
12
|
+
|
|
13
|
+
- `src/cli`: the Forge CLI implementation
|
|
14
|
+
- `skills/`: the Forge skill source used by initialized repositories
|
|
15
|
+
- `FRAMEWORK_V3.md`: the framework process and recommended authoring order used to seed `forge/FRAMEWORK_V3.md`
|
|
16
|
+
- `SCHEMA_REFERENCE_V3.md`: the schema contract and field rules used to seed `forge/SCHEMA_REFERENCE_V3.md`
|
|
17
|
+
- `examples/`: example Forge repositories and audit artifacts
|
|
18
|
+
|
|
19
|
+
## CLI Commands
|
|
20
|
+
|
|
21
|
+
- `forge init`: scaffold a new Forge workspace and explain how to use it
|
|
22
|
+
- `forge context`: render scoped context for a system, vertical, flow,
|
|
23
|
+
container, or component
|
|
24
|
+
- `forge audit`: generate a self-contained architecture audit dashboard
|
|
25
|
+
|
|
26
|
+
## What Forge Is
|
|
27
|
+
|
|
28
|
+
- a framework for capturing architectural truth before implementation detail
|
|
29
|
+
- a skills-first workflow for moving from broad system design to one thin
|
|
30
|
+
vertical at a time
|
|
31
|
+
- a scoped context generator for build, review, and security tasks
|
|
32
|
+
- an audit artifact generator for human review
|
|
33
|
+
|
|
34
|
+
## What Forge Is Not
|
|
35
|
+
|
|
36
|
+
- a generic project scaffolder for arbitrary app stacks
|
|
37
|
+
- a replacement for implementation skills such as build, review, and security
|
|
38
|
+
- a reason to model every payload, component, or environment detail up front
|
|
39
|
+
- an excuse to widen a vertical beyond what can be built and validated cleanly
|
|
40
|
+
|
|
41
|
+
## Recommended Workflow
|
|
42
|
+
|
|
43
|
+
1. Run `forge init` in an empty repository.
|
|
44
|
+
2. Read:
|
|
45
|
+
- `forge/USING_FORGE.md`
|
|
46
|
+
- `forge/FRAMEWORK_V3.md`
|
|
47
|
+
- `forge/SCHEMA_REFERENCE_V3.md`
|
|
48
|
+
3. Use `forge-schema` to define:
|
|
49
|
+
- `forge/system.yaml`
|
|
50
|
+
- `forge/high_level_flows/`
|
|
51
|
+
- `forge/early_state.yaml`
|
|
52
|
+
- `forge/runtime.yaml`
|
|
53
|
+
4. Derive `forge/verticals/` once the runtime picture is clear.
|
|
54
|
+
5. Pick one vertical and deepen it through:
|
|
55
|
+
- `forge/runtime_flows/`
|
|
56
|
+
- `forge/data_shapes/`
|
|
57
|
+
- `forge/persistent_shapes/`
|
|
58
|
+
- `forge/containers/`
|
|
59
|
+
- `forge/deployment.yaml`
|
|
60
|
+
6. Use `forge-review` to check the slice for drift, bloat, and broken references before build starts.
|
|
61
|
+
7. Use `forge-security` to make the slice security posture explicit before build starts.
|
|
62
|
+
8. Use `forge-build` to plan or implement that approved vertical.
|
|
63
|
+
|
|
64
|
+
The intended operating mode is:
|
|
65
|
+
|
|
66
|
+
1. choose the active skill first
|
|
67
|
+
2. ask that skill what scope it needs
|
|
68
|
+
3. use `forge context` only for that narrow scope
|
|
69
|
+
4. use `forge audit` when you need a whole-system review artifact
|
|
70
|
+
|
|
71
|
+
An initialized repository keeps the Forge-owned schema workspace under `./forge/`. The repo root stays available for product code, app docs, and non-Forge tooling.
|
|
72
|
+
|
|
73
|
+
## Golden Path Examples
|
|
74
|
+
|
|
75
|
+
- `examples/forge_v2_ordering_example`: the compact canonical example for docs,
|
|
76
|
+
smoke tests, and first-time users
|
|
77
|
+
- `examples/forge_v2_fulfillment_control_example`: the richer example used to
|
|
78
|
+
pressure-test flows, data, deployment, and audit rendering
|
|
79
|
+
|
|
80
|
+
## Local Development
|
|
81
|
+
|
|
82
|
+
Use the project virtual environment:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
.venv/bin/python -m pip install -e .[dev]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Validation Commands
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
make lint
|
|
92
|
+
make typecheck
|
|
93
|
+
make test
|
|
94
|
+
make compile
|
|
95
|
+
make build
|
|
96
|
+
make verify-package
|
|
97
|
+
make smoke-init
|
|
98
|
+
make check
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`make verify-package` builds the wheel, installs it into a fresh Python 3.11+
|
|
102
|
+
virtual environment, and confirms that the installed `forge` entrypoint works.
|
|
103
|
+
|
|
104
|
+
## Packaging
|
|
105
|
+
|
|
106
|
+
Build artifacts are generated with:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
.venv/bin/python -m build
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
This produces:
|
|
113
|
+
|
|
114
|
+
- `dist/*.tar.gz`
|
|
115
|
+
- `dist/*.whl`
|
|
116
|
+
|
|
117
|
+
Validate package metadata before release with:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
make check-dist
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Local Testing
|
|
124
|
+
|
|
125
|
+
Run the full local verification path:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
make check
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
That covers linting, type checking, tests, compile validation, build output,
|
|
132
|
+
distribution metadata checks, clean wheel install, and `forge init` smoke
|
|
133
|
+
validation.
|
|
134
|
+
|
|
135
|
+
If you want to test the richer example schema directly:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
EXAMPLE="examples/forge_v2_fulfillment_control_example"
|
|
139
|
+
.venv/bin/forge audit --project-dir "$EXAMPLE" --output /tmp/forge-audit-example.html
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
That generates the audit artifact and opens it unless `--no-open` is supplied.
|
|
143
|
+
|
|
144
|
+
## Framework Notes
|
|
145
|
+
|
|
146
|
+
- Forge is vertical-first: model broadly, then deepen one thin slice.
|
|
147
|
+
- The framework should reduce context, not increase it.
|
|
148
|
+
- Components and exact schemas should only appear when runtime boundaries and
|
|
149
|
+
vertical intent are already clear.
|
|
150
|
+
- Important decisions should be captured in `decision_notes.md`.
|
|
151
|
+
|
|
152
|
+
## Maintainer Notes
|
|
153
|
+
|
|
154
|
+
- Release instructions live in [docs/RELEASING.md](/Users/willdefina/Documents/2026%20-%20Business/dev-tools/forge/docs/RELEASING.md).
|
|
155
|
+
|
|
156
|
+
## Repository Notes
|
|
157
|
+
|
|
158
|
+
Previous iteration artifacts have been retained in `old-forge-v2/`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ai-forge-cli"
|
|
7
|
+
version = "2.1.3"
|
|
8
|
+
description = "Forge V3 context CLI"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
dependencies = ["pyyaml>=6.0"]
|
|
12
|
+
|
|
13
|
+
[project.optional-dependencies]
|
|
14
|
+
dev = [
|
|
15
|
+
"build>=1.2",
|
|
16
|
+
"mypy>=1.15",
|
|
17
|
+
"pytest>=8",
|
|
18
|
+
"ruff>=0.11",
|
|
19
|
+
"twine>=5.1",
|
|
20
|
+
"types-PyYAML>=6.0.12",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
forge = "cli.forge:main"
|
|
25
|
+
|
|
26
|
+
[tool.setuptools.packages.find]
|
|
27
|
+
where = ["src"]
|
|
28
|
+
include = ["cli*"]
|
|
29
|
+
|
|
30
|
+
[tool.setuptools.package-data]
|
|
31
|
+
cli = ["assets/*.svg", "assets/*.html", "resources/*.md"]
|
|
32
|
+
|
|
33
|
+
[tool.pytest.ini_options]
|
|
34
|
+
testpaths = ["tests"]
|
|
35
|
+
pythonpath = ["src"]
|
|
36
|
+
|
|
37
|
+
[tool.ruff]
|
|
38
|
+
line-length = 160
|
|
39
|
+
target-version = "py311"
|
|
40
|
+
|
|
41
|
+
[tool.ruff.lint]
|
|
42
|
+
select = ["E", "F", "I", "W"]
|
|
43
|
+
|
|
44
|
+
[tool.mypy]
|
|
45
|
+
python_version = "3.11"
|
|
46
|
+
files = ["src/cli"]
|
|
47
|
+
mypy_path = ["src"]
|
|
48
|
+
warn_unused_configs = true
|
|
49
|
+
warn_redundant_casts = true
|
|
50
|
+
warn_unused_ignores = true
|
|
51
|
+
strict_equality = true
|
|
52
|
+
check_untyped_defs = true
|
|
53
|
+
disallow_any_generics = true
|
|
54
|
+
no_implicit_optional = true
|
|
55
|
+
explicit_package_bases = true
|
|
56
|
+
|
|
57
|
+
[[tool.mypy.overrides]]
|
|
58
|
+
module = [
|
|
59
|
+
"cli.commands.audit",
|
|
60
|
+
"cli.commands.context",
|
|
61
|
+
"cli.schema",
|
|
62
|
+
]
|
|
63
|
+
ignore_errors = true
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-forge-cli
|
|
3
|
+
Version: 2.1.3
|
|
4
|
+
Summary: Forge V3 context CLI
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: pyyaml>=6.0
|
|
8
|
+
Provides-Extra: dev
|
|
9
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
10
|
+
Requires-Dist: mypy>=1.15; extra == "dev"
|
|
11
|
+
Requires-Dist: pytest>=8; extra == "dev"
|
|
12
|
+
Requires-Dist: ruff>=0.11; extra == "dev"
|
|
13
|
+
Requires-Dist: twine>=5.1; extra == "dev"
|
|
14
|
+
Requires-Dist: types-PyYAML>=6.0.12; extra == "dev"
|
|
15
|
+
|
|
16
|
+
# Forge
|
|
17
|
+
|
|
18
|
+
Forge is a Python CLI and framework for vertical-first system design and
|
|
19
|
+
delivery. It helps you define a system clearly, split it into buildable
|
|
20
|
+
verticals, and then deepen and implement one slice at a time with the minimum
|
|
21
|
+
context needed for the task at hand.
|
|
22
|
+
|
|
23
|
+
Forge is **skills-first**. The skills drive the work. The CLI exists to provide
|
|
24
|
+
scoped context, validation, and audit artifacts to the active skill.
|
|
25
|
+
|
|
26
|
+
## What This Repository Contains
|
|
27
|
+
|
|
28
|
+
- `src/cli`: the Forge CLI implementation
|
|
29
|
+
- `skills/`: the Forge skill source used by initialized repositories
|
|
30
|
+
- `FRAMEWORK_V3.md`: the framework process and recommended authoring order used to seed `forge/FRAMEWORK_V3.md`
|
|
31
|
+
- `SCHEMA_REFERENCE_V3.md`: the schema contract and field rules used to seed `forge/SCHEMA_REFERENCE_V3.md`
|
|
32
|
+
- `examples/`: example Forge repositories and audit artifacts
|
|
33
|
+
|
|
34
|
+
## CLI Commands
|
|
35
|
+
|
|
36
|
+
- `forge init`: scaffold a new Forge workspace and explain how to use it
|
|
37
|
+
- `forge context`: render scoped context for a system, vertical, flow,
|
|
38
|
+
container, or component
|
|
39
|
+
- `forge audit`: generate a self-contained architecture audit dashboard
|
|
40
|
+
|
|
41
|
+
## What Forge Is
|
|
42
|
+
|
|
43
|
+
- a framework for capturing architectural truth before implementation detail
|
|
44
|
+
- a skills-first workflow for moving from broad system design to one thin
|
|
45
|
+
vertical at a time
|
|
46
|
+
- a scoped context generator for build, review, and security tasks
|
|
47
|
+
- an audit artifact generator for human review
|
|
48
|
+
|
|
49
|
+
## What Forge Is Not
|
|
50
|
+
|
|
51
|
+
- a generic project scaffolder for arbitrary app stacks
|
|
52
|
+
- a replacement for implementation skills such as build, review, and security
|
|
53
|
+
- a reason to model every payload, component, or environment detail up front
|
|
54
|
+
- an excuse to widen a vertical beyond what can be built and validated cleanly
|
|
55
|
+
|
|
56
|
+
## Recommended Workflow
|
|
57
|
+
|
|
58
|
+
1. Run `forge init` in an empty repository.
|
|
59
|
+
2. Read:
|
|
60
|
+
- `forge/USING_FORGE.md`
|
|
61
|
+
- `forge/FRAMEWORK_V3.md`
|
|
62
|
+
- `forge/SCHEMA_REFERENCE_V3.md`
|
|
63
|
+
3. Use `forge-schema` to define:
|
|
64
|
+
- `forge/system.yaml`
|
|
65
|
+
- `forge/high_level_flows/`
|
|
66
|
+
- `forge/early_state.yaml`
|
|
67
|
+
- `forge/runtime.yaml`
|
|
68
|
+
4. Derive `forge/verticals/` once the runtime picture is clear.
|
|
69
|
+
5. Pick one vertical and deepen it through:
|
|
70
|
+
- `forge/runtime_flows/`
|
|
71
|
+
- `forge/data_shapes/`
|
|
72
|
+
- `forge/persistent_shapes/`
|
|
73
|
+
- `forge/containers/`
|
|
74
|
+
- `forge/deployment.yaml`
|
|
75
|
+
6. Use `forge-review` to check the slice for drift, bloat, and broken references before build starts.
|
|
76
|
+
7. Use `forge-security` to make the slice security posture explicit before build starts.
|
|
77
|
+
8. Use `forge-build` to plan or implement that approved vertical.
|
|
78
|
+
|
|
79
|
+
The intended operating mode is:
|
|
80
|
+
|
|
81
|
+
1. choose the active skill first
|
|
82
|
+
2. ask that skill what scope it needs
|
|
83
|
+
3. use `forge context` only for that narrow scope
|
|
84
|
+
4. use `forge audit` when you need a whole-system review artifact
|
|
85
|
+
|
|
86
|
+
An initialized repository keeps the Forge-owned schema workspace under `./forge/`. The repo root stays available for product code, app docs, and non-Forge tooling.
|
|
87
|
+
|
|
88
|
+
## Golden Path Examples
|
|
89
|
+
|
|
90
|
+
- `examples/forge_v2_ordering_example`: the compact canonical example for docs,
|
|
91
|
+
smoke tests, and first-time users
|
|
92
|
+
- `examples/forge_v2_fulfillment_control_example`: the richer example used to
|
|
93
|
+
pressure-test flows, data, deployment, and audit rendering
|
|
94
|
+
|
|
95
|
+
## Local Development
|
|
96
|
+
|
|
97
|
+
Use the project virtual environment:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
.venv/bin/python -m pip install -e .[dev]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Validation Commands
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
make lint
|
|
107
|
+
make typecheck
|
|
108
|
+
make test
|
|
109
|
+
make compile
|
|
110
|
+
make build
|
|
111
|
+
make verify-package
|
|
112
|
+
make smoke-init
|
|
113
|
+
make check
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`make verify-package` builds the wheel, installs it into a fresh Python 3.11+
|
|
117
|
+
virtual environment, and confirms that the installed `forge` entrypoint works.
|
|
118
|
+
|
|
119
|
+
## Packaging
|
|
120
|
+
|
|
121
|
+
Build artifacts are generated with:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
.venv/bin/python -m build
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
This produces:
|
|
128
|
+
|
|
129
|
+
- `dist/*.tar.gz`
|
|
130
|
+
- `dist/*.whl`
|
|
131
|
+
|
|
132
|
+
Validate package metadata before release with:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
make check-dist
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Local Testing
|
|
139
|
+
|
|
140
|
+
Run the full local verification path:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
make check
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
That covers linting, type checking, tests, compile validation, build output,
|
|
147
|
+
distribution metadata checks, clean wheel install, and `forge init` smoke
|
|
148
|
+
validation.
|
|
149
|
+
|
|
150
|
+
If you want to test the richer example schema directly:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
EXAMPLE="examples/forge_v2_fulfillment_control_example"
|
|
154
|
+
.venv/bin/forge audit --project-dir "$EXAMPLE" --output /tmp/forge-audit-example.html
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
That generates the audit artifact and opens it unless `--no-open` is supplied.
|
|
158
|
+
|
|
159
|
+
## Framework Notes
|
|
160
|
+
|
|
161
|
+
- Forge is vertical-first: model broadly, then deepen one thin slice.
|
|
162
|
+
- The framework should reduce context, not increase it.
|
|
163
|
+
- Components and exact schemas should only appear when runtime boundaries and
|
|
164
|
+
vertical intent are already clear.
|
|
165
|
+
- Important decisions should be captured in `decision_notes.md`.
|
|
166
|
+
|
|
167
|
+
## Maintainer Notes
|
|
168
|
+
|
|
169
|
+
- Release instructions live in [docs/RELEASING.md](/Users/willdefina/Documents/2026%20-%20Business/dev-tools/forge/docs/RELEASING.md).
|
|
170
|
+
|
|
171
|
+
## Repository Notes
|
|
172
|
+
|
|
173
|
+
Previous iteration artifacts have been retained in `old-forge-v2/`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
src/ai_forge_cli.egg-info/PKG-INFO
|
|
4
|
+
src/ai_forge_cli.egg-info/SOURCES.txt
|
|
5
|
+
src/ai_forge_cli.egg-info/dependency_links.txt
|
|
6
|
+
src/ai_forge_cli.egg-info/entry_points.txt
|
|
7
|
+
src/ai_forge_cli.egg-info/requires.txt
|
|
8
|
+
src/ai_forge_cli.egg-info/top_level.txt
|
|
9
|
+
src/cli/__init__.py
|
|
10
|
+
src/cli/__main__.py
|
|
11
|
+
src/cli/common.py
|
|
12
|
+
src/cli/forge.py
|
|
13
|
+
src/cli/schema.py
|
|
14
|
+
src/cli/assets/audit_template.html
|
|
15
|
+
src/cli/assets/forge_full_logo.drawio.svg
|
|
16
|
+
src/cli/assets/forge_white_small.drawio.svg
|
|
17
|
+
src/cli/commands/__init__.py
|
|
18
|
+
src/cli/commands/audit.py
|
|
19
|
+
src/cli/commands/base.py
|
|
20
|
+
src/cli/commands/context.py
|
|
21
|
+
src/cli/commands/init.py
|
|
22
|
+
src/cli/resources/FRAMEWORK_V3.md
|
|
23
|
+
src/cli/resources/SCHEMA_REFERENCE_V3.md
|
|
24
|
+
tests/test_context.py
|