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.
Files changed (116) hide show
  1. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/PKG-INFO +36 -16
  2. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/README.md +35 -15
  3. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/pyproject.toml +1 -1
  4. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/__init__.py +1 -1
  5. agentforge_framework-0.2.2/src/agentforge_framework/agents/decomposer.py +473 -0
  6. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/cli.py +162 -24
  7. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/contracts.py +52 -0
  8. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/issues.py +81 -3
  9. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/plan_format.py +111 -0
  10. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/registry.py +9 -1
  11. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/runtime.py +212 -35
  12. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/skills.py +78 -0
  13. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/base.py +35 -12
  14. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/claude.py +7 -4
  15. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/codex.py +8 -4
  16. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/PKG-INFO +36 -16
  17. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/SOURCES.txt +2 -0
  18. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_agents.py +67 -0
  19. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_cli.py +111 -8
  20. agentforge_framework-0.2.2/tests/test_decompose.py +575 -0
  21. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_docs.py +30 -0
  22. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_execution_posture.py +2 -2
  23. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_interview.py +1 -1
  24. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_plugins.py +2 -2
  25. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_providers.py +138 -7
  26. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_reviewer.py +3 -4
  27. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_runtime.py +61 -43
  28. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_skills.py +37 -0
  29. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_tester.py +1 -1
  30. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/LICENSE +0 -0
  31. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/setup.cfg +0 -0
  32. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/.claude-plugin/plugin.json +0 -0
  33. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/__init__.py +0 -0
  34. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/architect.py +0 -0
  35. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/implementer.py +0 -0
  36. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/orchestrator.py +0 -0
  37. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/reviewer.py +0 -0
  38. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/security.py +0 -0
  39. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/agents/tester.py +0 -0
  40. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/__init__.py +0 -0
  41. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/__init__.py +0 -0
  42. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/base.py +0 -0
  43. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/python.py +0 -0
  44. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/sql.py +0 -0
  45. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/extractors/yaml.py +0 -0
  46. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/prompt.py +0 -0
  47. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/context/resolver.py +0 -0
  48. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/__init__.py +0 -0
  49. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/commands.py +0 -0
  50. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/config.py +0 -0
  51. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/gates.py +0 -0
  52. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/process.py +0 -0
  53. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/project.py +0 -0
  54. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/repo.py +0 -0
  55. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/router.py +0 -0
  56. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/core/workflow.py +0 -0
  57. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/__init__.py +0 -0
  58. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/databricks/__init__.py +0 -0
  59. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/pyspark/__init__.py +0 -0
  60. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/python/__init__.py +0 -0
  61. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/plugins/sql/__init__.py +0 -0
  62. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/providers/__init__.py +0 -0
  63. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/MANIFEST.yaml +0 -0
  64. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/NOTICE +0 -0
  65. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/ADR-FORMAT.md +0 -0
  66. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/CONTEXT-FORMAT.md +0 -0
  67. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/SKILL.md +0 -0
  68. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/domain-modeling/agents/openai.yaml +0 -0
  69. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/grill-with-docs/SKILL.md +0 -0
  70. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/grilling/SKILL.md +0 -0
  71. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/grilling/agents/openai.yaml +0 -0
  72. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-spec/SKILL.md +0 -0
  73. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-spec/agents/openai.yaml +0 -0
  74. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-tickets/SKILL.md +0 -0
  75. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/to-tickets/agents/openai.yaml +0 -0
  76. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/SKILL.md +0 -0
  77. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/evals/fixtures/silhouette/human_reference.json +0 -0
  78. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/_lang.py +0 -0
  79. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/banned_phrase_scan.py +0 -0
  80. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/calibrate_pairs.py +0 -0
  81. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/calibrate_score.py +0 -0
  82. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/check_packs.py +0 -0
  83. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/check_suggestions.py +0 -0
  84. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/contribute.py +0 -0
  85. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/diff_check.py +0 -0
  86. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/extract_constraints.py +0 -0
  87. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/harvest_classify.py +0 -0
  88. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/harvest_samples.py +0 -0
  89. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/readability_metrics.py +0 -0
  90. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/refresh_status.py +0 -0
  91. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/silhouette_scan.py +0 -0
  92. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/structure_scan.py +0 -0
  93. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/suggest.py +0 -0
  94. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/validate_preservation.py +0 -0
  95. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/voice_card.py +0 -0
  96. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/voice_profile.py +0 -0
  97. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/voice_score.py +0 -0
  98. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/unslop/scripts/wiki_sync.py +0 -0
  99. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/skills/write-plainly/SKILL.md +0 -0
  100. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/workflows/bugfix.yaml +0 -0
  101. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/workflows/feature.yaml +0 -0
  102. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework/workflows/review.yaml +0 -0
  103. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/dependency_links.txt +0 -0
  104. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/entry_points.txt +0 -0
  105. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/requires.txt +0 -0
  106. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/src/agentforge_framework.egg-info/top_level.txt +0 -0
  107. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_architect.py +0 -0
  108. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_config.py +0 -0
  109. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_context.py +0 -0
  110. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_contracts.py +0 -0
  111. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_gates.py +0 -0
  112. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_issues.py +0 -0
  113. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_plan_format.py +0 -0
  114. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_project.py +0 -0
  115. {agentforge_framework-0.2.0 → agentforge_framework-0.2.2}/tests/test_security.py +0 -0
  116. {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.0
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 and the Roster of Roles that will execute it. `agentforge implement <n>` runs the Issue's Workflow and opens a draft pull request for a human to sign off. No workflow ever merges.
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
  ![An Issue carries the frozen plan and the Roster. Each Agent reads that Issue and appends its result as the Run Log. The Workflow ends at a draft pull request that only a human can merge.](docs/assets/one-issue-number.svg)
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
- Run it with: agentforge implement 12
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
- AgentForge publishes to no package index yet, so neither route below is
131
- `pip install agentforge-framework`. Both put the same `agentforge` command on
132
- your path.
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**, to run AgentForge against your own repositories.
147
- Download the wheel attached to the
148
- [latest release](https://github.com/yashmhatre/AgentForge/releases/latest) and
149
- install the file you downloaded:
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.0-py3-none-any.whl
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>"` | Runs the Orchestrator at the `deep` tier and files an issue carrying the plan and roster. |
189
- | `agentforge implement <n>` | Reads Issue `<n>`, runs its Workflow on a branch, posts each Agent Result, and opens a draft PR. Add `--allow-commands` when the Workflow must execute a suite. |
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 and the Roster of Roles that will execute it. `agentforge implement <n>` runs the Issue's Workflow and opens a draft pull request for a human to sign off. No workflow ever merges.
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
  ![An Issue carries the frozen plan and the Roster. Each Agent reads that Issue and appends its result as the Run Log. The Workflow ends at a draft pull request that only a human can merge.](docs/assets/one-issue-number.svg)
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
- Run it with: agentforge implement 12
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
- AgentForge publishes to no package index yet, so neither route below is
113
- `pip install agentforge-framework`. Both put the same `agentforge` command on
114
- your path.
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**, to run AgentForge against your own repositories.
129
- Download the wheel attached to the
130
- [latest release](https://github.com/yashmhatre/AgentForge/releases/latest) and
131
- install the file you downloaded:
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.0-py3-none-any.whl
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>"` | Runs the Orchestrator at the `deep` tier and files an issue carrying the plan and roster. |
171
- | `agentforge implement <n>` | Reads Issue `<n>`, runs its Workflow on a branch, posts each Agent Result, and opens a draft PR. Add `--allow-commands` when the Workflow must execute a suite. |
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
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agentforge-framework"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "A modular framework for coordinating specialized software agents."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,3 +1,3 @@
1
1
  """AgentForge — coordination of specialized software agents through reusable workflows."""
2
2
 
3
- __version__ = "0.2.0"
3
+ __version__ = "0.2.2"