agentforge-framework 0.2.0__tar.gz → 0.2.2__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.
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/PKG-INFO +36 -16
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/README.md +35 -15
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/pyproject.toml +1 -1
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/__init__.py +1 -1
- agentforge_framework-0.2.2/src/agentforge_framework/agents/decomposer.py +473 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/cli.py +162 -24
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/contracts.py +52 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/issues.py +81 -3
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/plan_format.py +111 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/registry.py +9 -1
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/runtime.py +212 -35
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/skills.py +78 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/base.py +35 -12
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/claude.py +7 -4
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/codex.py +8 -4
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/PKG-INFO +36 -16
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/SOURCES.txt +2 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_agents.py +67 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_cli.py +111 -8
- agentforge_framework-0.2.2/tests/test_decompose.py +575 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_docs.py +30 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_execution_posture.py +2 -2
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_interview.py +1 -1
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_plugins.py +2 -2
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_providers.py +138 -7
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_reviewer.py +3 -4
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_runtime.py +61 -43
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_skills.py +37 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_tester.py +1 -1
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/LICENSE +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/setup.cfg +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/.claude-plugin/plugin.json +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/architect.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/implementer.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/orchestrator.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/reviewer.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/security.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/tester.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/base.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/python.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/sql.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/yaml.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/prompt.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/resolver.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/commands.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/config.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/gates.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/process.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/project.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/repo.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/router.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/workflow.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/databricks/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/pyspark/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/python/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/sql/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/__init__.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/MANIFEST.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/NOTICE +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/ADR-FORMAT.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/CONTEXT-FORMAT.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/agents/openai.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/grill-with-docs/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/grilling/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/grilling/agents/openai.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-spec/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-spec/agents/openai.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-tickets/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-tickets/agents/openai.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/evals/fixtures/silhouette/human_reference.json +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/_lang.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/banned_phrase_scan.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/calibrate_pairs.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/calibrate_score.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/check_packs.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/check_suggestions.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/contribute.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/diff_check.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/extract_constraints.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/harvest_classify.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/harvest_samples.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/readability_metrics.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/refresh_status.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/silhouette_scan.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/structure_scan.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/suggest.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/validate_preservation.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/voice_card.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/voice_profile.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/voice_score.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/wiki_sync.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/write-plainly/SKILL.md +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/workflows/bugfix.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/workflows/feature.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/workflows/review.yaml +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/dependency_links.txt +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/entry_points.txt +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/requires.txt +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/top_level.txt +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_architect.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_config.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_context.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_contracts.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_gates.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_issues.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_plan_format.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_project.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_security.py +0 -0
- {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentforge-framework
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: A modular framework for coordinating specialized software agents.
|
|
5
5
|
Author: Yash Mhatre
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -20,7 +20,7 @@ Dynamic: license-file
|
|
|
20
20
|
|
|
21
21
|
AgentForge is a standalone Python framework for coordinating specialized software agents through reusable workflows.
|
|
22
22
|
|
|
23
|
-
A human states a Task. The Orchestrator files a GitHub issue carrying a frozen plan
|
|
23
|
+
A human states a Task. The Orchestrator grills them on it, writes a spec, cuts the spec into Slices, and files a GitHub issue for each -- every one carrying a frozen plan, the Roster of Roles that will execute it, and the issues that block it. `agentforge implement <n>` runs one Issue's Workflow and opens a draft pull request for a human to sign off. No workflow ever merges.
|
|
24
24
|
|
|
25
25
|

|
|
26
26
|
|
|
@@ -42,11 +42,26 @@ Answer them, or press Enter on an empty line to plan with what it has.
|
|
|
42
42
|
Retry on 5xx only, or timeouts too?
|
|
43
43
|
> both, cap it at three attempts
|
|
44
44
|
|
|
45
|
+
This cuts into 1 Slice(s), each filed as its own issue:
|
|
46
|
+
|
|
47
|
+
1. Add a bounded retry to the orders loader [retry]
|
|
48
|
+
Delivers: The orders loader retries a failed fetch up to three times.
|
|
49
|
+
Blocked by: nothing -- can start immediately
|
|
50
|
+
- A 5xx or a timeout is retried; a 4xx is not.
|
|
51
|
+
|
|
52
|
+
Blockers are filed first, and a Slice waits for the ones it names.
|
|
53
|
+
|
|
54
|
+
File these? [y/N] y
|
|
55
|
+
|
|
56
|
+
Interview: 2 question(s) answered
|
|
57
|
+
|
|
45
58
|
Filed issue #12: https://github.com/acme/pipelines/issues/12
|
|
59
|
+
Add a bounded retry to the orders loader
|
|
46
60
|
Roster: implementer (standard)
|
|
47
|
-
Interview: 2 question(s) answered
|
|
48
61
|
|
|
49
|
-
|
|
62
|
+
Start with: agentforge implement 12
|
|
63
|
+
|
|
64
|
+
Cost: $0.41
|
|
50
65
|
|
|
51
66
|
$ agentforge implement 12 --allow-commands
|
|
52
67
|
[ok] implementer (standard) — Wrapped the fetch in a bounded retry.
|
|
@@ -127,9 +142,14 @@ without notice. See
|
|
|
127
142
|
|
|
128
143
|
## Install
|
|
129
144
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
145
|
+
```console
|
|
146
|
+
$ pip install agentforge-framework
|
|
147
|
+
$ agentforge --version
|
|
148
|
+
agentforge 0.2.2
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
That is the whole of it. The two routes below the naming note are for a machine
|
|
152
|
+
that cannot reach PyPI, and for working on AgentForge itself.
|
|
133
153
|
|
|
134
154
|
The distribution is `agentforge-framework` and it imports as
|
|
135
155
|
`agentforge_framework`, because an older and larger project holds `agentforge`
|
|
@@ -143,15 +163,13 @@ other project installed, because its 0.5.0 through 0.6.5 declare an `agentforge`
|
|
|
143
163
|
command too and whichever was installed last wins. See
|
|
144
164
|
[ADR-0013](docs/adr/0013-the-name-stays-the-import-path-moves.md).
|
|
145
165
|
|
|
146
|
-
**From a release wheel**,
|
|
147
|
-
|
|
148
|
-
[latest release](https://github.com/yashmhatre/AgentForge/releases/latest)
|
|
149
|
-
install the file
|
|
166
|
+
**From a release wheel**, for a machine with no route to PyPI. Every release
|
|
167
|
+
attaches the same wheel and sdist that were uploaded to the index; download one
|
|
168
|
+
from the [latest release](https://github.com/yashmhatre/AgentForge/releases/latest)
|
|
169
|
+
and install the file:
|
|
150
170
|
|
|
151
171
|
```console
|
|
152
|
-
$ pip install agentforge_framework-0.2.
|
|
153
|
-
$ agentforge --version
|
|
154
|
-
agentforge 0.2.0
|
|
172
|
+
$ pip install agentforge_framework-0.2.2-py3-none-any.whl
|
|
155
173
|
```
|
|
156
174
|
|
|
157
175
|
Publishing a release is a wizard rather than a checklist:
|
|
@@ -170,6 +188,7 @@ $ cd AgentForge
|
|
|
170
188
|
$ pip install -e ".[dev]"
|
|
171
189
|
```
|
|
172
190
|
|
|
191
|
+
Step by step, with every command and flag: [docs/GUIDE.md](docs/GUIDE.md).
|
|
173
192
|
What each release contains is in [CHANGELOG.md](CHANGELOG.md).
|
|
174
193
|
|
|
175
194
|
## Requirements
|
|
@@ -185,8 +204,9 @@ AgentForge never touches a model API and handles no credentials of its own. What
|
|
|
185
204
|
|
|
186
205
|
| Command | What it does |
|
|
187
206
|
| --- | --- |
|
|
188
|
-
| `agentforge plan "<task>"` |
|
|
189
|
-
| `agentforge
|
|
207
|
+
| `agentforge plan "<task>"` | Grills you on the task, writes a spec, cuts it into Slices, and files one issue per Slice carrying the plan, the roster, and the issues that block it. Add `--yes` to file without reviewing the cut. |
|
|
208
|
+
| `agentforge decompose <path>` | The same pipeline over a plan document you already wrote. Use it when the plan is longer than a sentence and already lives in the repository. |
|
|
209
|
+
| `agentforge implement <n>` | Reads Issue `<n>`, runs its Workflow on a branch, posts each Agent Result, and opens a draft PR. Refuses to start while an issue it declares as a blocker has not signed off; `--ignore-blockers` overrides. Add `--allow-commands` when the Workflow must execute a suite. |
|
|
190
210
|
| `agentforge run [<command> args]` | Runs a chore a Plugin contributes -- `agentforge run scaffold-dbt-model orders` writes the files and exits. With no command name it lists what this repository has. No issue, no Run, no model involved. |
|
|
191
211
|
| `agentforge unslop <file>` | Scans prose for machine-writing tells. Deterministic; no model involved. |
|
|
192
212
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
AgentForge is a standalone Python framework for coordinating specialized software agents through reusable workflows.
|
|
4
4
|
|
|
5
|
-
A human states a Task. The Orchestrator files a GitHub issue carrying a frozen plan
|
|
5
|
+
A human states a Task. The Orchestrator grills them on it, writes a spec, cuts the spec into Slices, and files a GitHub issue for each -- every one carrying a frozen plan, the Roster of Roles that will execute it, and the issues that block it. `agentforge implement <n>` runs one Issue's Workflow and opens a draft pull request for a human to sign off. No workflow ever merges.
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
@@ -24,11 +24,26 @@ Answer them, or press Enter on an empty line to plan with what it has.
|
|
|
24
24
|
Retry on 5xx only, or timeouts too?
|
|
25
25
|
> both, cap it at three attempts
|
|
26
26
|
|
|
27
|
+
This cuts into 1 Slice(s), each filed as its own issue:
|
|
28
|
+
|
|
29
|
+
1. Add a bounded retry to the orders loader [retry]
|
|
30
|
+
Delivers: The orders loader retries a failed fetch up to three times.
|
|
31
|
+
Blocked by: nothing -- can start immediately
|
|
32
|
+
- A 5xx or a timeout is retried; a 4xx is not.
|
|
33
|
+
|
|
34
|
+
Blockers are filed first, and a Slice waits for the ones it names.
|
|
35
|
+
|
|
36
|
+
File these? [y/N] y
|
|
37
|
+
|
|
38
|
+
Interview: 2 question(s) answered
|
|
39
|
+
|
|
27
40
|
Filed issue #12: https://github.com/acme/pipelines/issues/12
|
|
41
|
+
Add a bounded retry to the orders loader
|
|
28
42
|
Roster: implementer (standard)
|
|
29
|
-
Interview: 2 question(s) answered
|
|
30
43
|
|
|
31
|
-
|
|
44
|
+
Start with: agentforge implement 12
|
|
45
|
+
|
|
46
|
+
Cost: $0.41
|
|
32
47
|
|
|
33
48
|
$ agentforge implement 12 --allow-commands
|
|
34
49
|
[ok] implementer (standard) — Wrapped the fetch in a bounded retry.
|
|
@@ -109,9 +124,14 @@ without notice. See
|
|
|
109
124
|
|
|
110
125
|
## Install
|
|
111
126
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
127
|
+
```console
|
|
128
|
+
$ pip install agentforge-framework
|
|
129
|
+
$ agentforge --version
|
|
130
|
+
agentforge 0.2.2
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
That is the whole of it. The two routes below the naming note are for a machine
|
|
134
|
+
that cannot reach PyPI, and for working on AgentForge itself.
|
|
115
135
|
|
|
116
136
|
The distribution is `agentforge-framework` and it imports as
|
|
117
137
|
`agentforge_framework`, because an older and larger project holds `agentforge`
|
|
@@ -125,15 +145,13 @@ other project installed, because its 0.5.0 through 0.6.5 declare an `agentforge`
|
|
|
125
145
|
command too and whichever was installed last wins. See
|
|
126
146
|
[ADR-0013](docs/adr/0013-the-name-stays-the-import-path-moves.md).
|
|
127
147
|
|
|
128
|
-
**From a release wheel**,
|
|
129
|
-
|
|
130
|
-
[latest release](https://github.com/yashmhatre/AgentForge/releases/latest)
|
|
131
|
-
install the file
|
|
148
|
+
**From a release wheel**, for a machine with no route to PyPI. Every release
|
|
149
|
+
attaches the same wheel and sdist that were uploaded to the index; download one
|
|
150
|
+
from the [latest release](https://github.com/yashmhatre/AgentForge/releases/latest)
|
|
151
|
+
and install the file:
|
|
132
152
|
|
|
133
153
|
```console
|
|
134
|
-
$ pip install agentforge_framework-0.2.
|
|
135
|
-
$ agentforge --version
|
|
136
|
-
agentforge 0.2.0
|
|
154
|
+
$ pip install agentforge_framework-0.2.2-py3-none-any.whl
|
|
137
155
|
```
|
|
138
156
|
|
|
139
157
|
Publishing a release is a wizard rather than a checklist:
|
|
@@ -152,6 +170,7 @@ $ cd AgentForge
|
|
|
152
170
|
$ pip install -e ".[dev]"
|
|
153
171
|
```
|
|
154
172
|
|
|
173
|
+
Step by step, with every command and flag: [docs/GUIDE.md](docs/GUIDE.md).
|
|
155
174
|
What each release contains is in [CHANGELOG.md](CHANGELOG.md).
|
|
156
175
|
|
|
157
176
|
## Requirements
|
|
@@ -167,8 +186,9 @@ AgentForge never touches a model API and handles no credentials of its own. What
|
|
|
167
186
|
|
|
168
187
|
| Command | What it does |
|
|
169
188
|
| --- | --- |
|
|
170
|
-
| `agentforge plan "<task>"` |
|
|
171
|
-
| `agentforge
|
|
189
|
+
| `agentforge plan "<task>"` | Grills you on the task, writes a spec, cuts it into Slices, and files one issue per Slice carrying the plan, the roster, and the issues that block it. Add `--yes` to file without reviewing the cut. |
|
|
190
|
+
| `agentforge decompose <path>` | The same pipeline over a plan document you already wrote. Use it when the plan is longer than a sentence and already lives in the repository. |
|
|
191
|
+
| `agentforge implement <n>` | Reads Issue `<n>`, runs its Workflow on a branch, posts each Agent Result, and opens a draft PR. Refuses to start while an issue it declares as a blocker has not signed off; `--ignore-blockers` overrides. Add `--allow-commands` when the Workflow must execute a suite. |
|
|
172
192
|
| `agentforge run [<command> args]` | Runs a chore a Plugin contributes -- `agentforge run scaffold-dbt-model orders` writes the files and exits. With no command name it lists what this repository has. No issue, no Run, no model involved. |
|
|
173
193
|
| `agentforge unslop <file>` | Scans prose for machine-writing tells. Deterministic; no model involved. |
|
|
174
194
|
|