impliforge 0.1.1__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 (63) hide show
  1. impliforge-0.1.1/.gitignore +24 -0
  2. impliforge-0.1.1/.rules +1 -0
  3. impliforge-0.1.1/Formula/impliforge.rb +159 -0
  4. impliforge-0.1.1/LICENSE +21 -0
  5. impliforge-0.1.1/Makefile +25 -0
  6. impliforge-0.1.1/PKG-INFO +174 -0
  7. impliforge-0.1.1/README.ja.md +129 -0
  8. impliforge-0.1.1/README.md +131 -0
  9. impliforge-0.1.1/docs/design.md +148 -0
  10. impliforge-0.1.1/docs/final-summary.md +69 -0
  11. impliforge-0.1.1/docs/fix-report.md +76 -0
  12. impliforge-0.1.1/docs/implementation-plan.md +1190 -0
  13. impliforge-0.1.1/docs/review-report.md +60 -0
  14. impliforge-0.1.1/docs/runbook.md +82 -0
  15. impliforge-0.1.1/docs/test-plan.md +121 -0
  16. impliforge-0.1.1/docs/test-results.md +61 -0
  17. impliforge-0.1.1/pyproject.toml +44 -0
  18. impliforge-0.1.1/src/impliforge/__init__.py +5 -0
  19. impliforge-0.1.1/src/impliforge/__main__.py +6 -0
  20. impliforge-0.1.1/src/impliforge/agents/base.py +135 -0
  21. impliforge-0.1.1/src/impliforge/agents/documentation.py +355 -0
  22. impliforge-0.1.1/src/impliforge/agents/fixer.py +529 -0
  23. impliforge-0.1.1/src/impliforge/agents/implementation.py +319 -0
  24. impliforge-0.1.1/src/impliforge/agents/planner.py +142 -0
  25. impliforge-0.1.1/src/impliforge/agents/requirements.py +213 -0
  26. impliforge-0.1.1/src/impliforge/agents/reviewer.py +553 -0
  27. impliforge-0.1.1/src/impliforge/agents/test_design.py +443 -0
  28. impliforge-0.1.1/src/impliforge/agents/test_execution.py +371 -0
  29. impliforge-0.1.1/src/impliforge/main.py +1315 -0
  30. impliforge-0.1.1/src/impliforge/models/routing.py +386 -0
  31. impliforge-0.1.1/src/impliforge/orchestration/artifact_writer.py +932 -0
  32. impliforge-0.1.1/src/impliforge/orchestration/edit_phase.py +706 -0
  33. impliforge-0.1.1/src/impliforge/orchestration/orchestrator.py +409 -0
  34. impliforge-0.1.1/src/impliforge/orchestration/runtime_support.py +161 -0
  35. impliforge-0.1.1/src/impliforge/orchestration/session_manager.py +375 -0
  36. impliforge-0.1.1/src/impliforge/orchestration/state_store.py +197 -0
  37. impliforge-0.1.1/src/impliforge/orchestration/workflow.py +416 -0
  38. impliforge-0.1.1/src/impliforge/runtime/code_editing.py +585 -0
  39. impliforge-0.1.1/src/impliforge/runtime/copilot_client.py +733 -0
  40. impliforge-0.1.1/src/impliforge/runtime/editor.py +678 -0
  41. impliforge-0.1.1/tests/orchestration_test_helpers.py +196 -0
  42. impliforge-0.1.1/tests/test_agents_documentation.py +304 -0
  43. impliforge-0.1.1/tests/test_agents_fixer.py +548 -0
  44. impliforge-0.1.1/tests/test_agents_implementation.py +345 -0
  45. impliforge-0.1.1/tests/test_agents_planner.py +218 -0
  46. impliforge-0.1.1/tests/test_agents_requirements.py +181 -0
  47. impliforge-0.1.1/tests/test_agents_reviewer.py +322 -0
  48. impliforge-0.1.1/tests/test_agents_test_design.py +279 -0
  49. impliforge-0.1.1/tests/test_agents_test_execution.py +447 -0
  50. impliforge-0.1.1/tests/test_main_orchestrator.py +2674 -0
  51. impliforge-0.1.1/tests/test_models_routing.py +356 -0
  52. impliforge-0.1.1/tests/test_module_entrypoint.py +35 -0
  53. impliforge-0.1.1/tests/test_orchestration_artifact_writer.py +1608 -0
  54. impliforge-0.1.1/tests/test_orchestration_edit_phase.py +373 -0
  55. impliforge-0.1.1/tests/test_orchestration_helpers.py +4 -0
  56. impliforge-0.1.1/tests/test_orchestration_orchestrator.py +750 -0
  57. impliforge-0.1.1/tests/test_orchestration_runtime_support.py +364 -0
  58. impliforge-0.1.1/tests/test_orchestration_session_manager.py +480 -0
  59. impliforge-0.1.1/tests/test_orchestration_state_store.py +216 -0
  60. impliforge-0.1.1/tests/test_runtime_code_editing.py +929 -0
  61. impliforge-0.1.1/tests/test_runtime_copilot_client.py +885 -0
  62. impliforge-0.1.1/tests/test_runtime_editor.py +511 -0
  63. impliforge-0.1.1/uv.lock +758 -0
@@ -0,0 +1,24 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ .env
13
+ .envrc
14
+
15
+ # Local environment
16
+ .python-version
17
+
18
+ # Generated workflow artifacts
19
+ artifacts/
20
+
21
+ # Coverage data
22
+ .coverage
23
+
24
+ .pytest_cache/
@@ -0,0 +1 @@
1
+ ../ctxledger/.rules
@@ -0,0 +1,159 @@
1
+ class Impliforge < Formula
2
+ include Language::Python::Virtualenv
3
+
4
+ desc "Orchestrator-centric multi-agent workflow runner built on the GitHub Copilot SDK"
5
+ homepage "https://pypi.org/project/impliforge/"
6
+ url "https://github.com/rioriost/impliforge/releases/download/0.1.1/impliforge-0.1.1.tar.gz"
7
+ sha256 "f03f757eb5bb5fe66b52d1a5afdb713b82d6dd3bb285c53c66d247ef23ef0021"
8
+ license "MIT"
9
+
10
+ depends_on "python@3.14"
11
+ resource "annotated-types" do
12
+ url "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl"
13
+ sha256 "1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"
14
+ end
15
+ resource "github-copilot-sdk" do
16
+ if OS.mac? && Hardware::CPU.arm?
17
+ url "https://files.pythonhosted.org/packages/04/04/d2e8bf4587c4da270ccb9cbd5ab8a2c4b41217c2bf04a43904be8a27ae20/github_copilot_sdk-0.2.1-py3-none-macosx_11_0_arm64.whl"
18
+ sha256 "ef7ff68eb8960515e1a2e199ac0ffb9a17cd3325266461e6edd7290e43dcf012"
19
+ elsif OS.mac? && Hardware::CPU.intel?
20
+ url "https://files.pythonhosted.org/packages/67/41/76a9d50d7600bf8d26c659dc113be62e4e56e00a5cbfd544e1b5b200f45c/github_copilot_sdk-0.2.1-py3-none-macosx_10_9_x86_64.whl"
21
+ sha256 "c0823150f3b73431f04caee43d1dbafac22ae7e8bd1fc83727ee8363089ee038"
22
+ elsif OS.linux?
23
+ url "https://files.pythonhosted.org/packages/cf/ee/facf04e22e42d4bdd4fe3d356f3a51180a6ea769ae2ac306d0897f9bf9d9/github_copilot_sdk-0.2.1-py3-none-manylinux_2_28_x86_64.whl"
24
+ sha256 "6502be0b9ececacbda671835e5f61c7aaa906c6b8657ee252cad6cc8335cac8e"
25
+ else
26
+ url "https://files.pythonhosted.org/packages/04/04/d2e8bf4587c4da270ccb9cbd5ab8a2c4b41217c2bf04a43904be8a27ae20/github_copilot_sdk-0.2.1-py3-none-macosx_11_0_arm64.whl"
27
+ sha256 "ef7ff68eb8960515e1a2e199ac0ffb9a17cd3325266461e6edd7290e43dcf012"
28
+ end
29
+ end
30
+ resource "pydantic" do
31
+ url "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl"
32
+ sha256 "e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d"
33
+ end
34
+ resource "pydantic-core" do
35
+ if OS.mac? && Hardware::CPU.arm?
36
+ url "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl"
37
+ sha256 "1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14"
38
+ elsif OS.mac? && Hardware::CPU.intel?
39
+ url "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl"
40
+ sha256 "3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a"
41
+ elsif OS.linux?
42
+ url "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
43
+ sha256 "22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375"
44
+ else
45
+ url "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl"
46
+ sha256 "1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14"
47
+ end
48
+ end
49
+ resource "python-dateutil" do
50
+ url "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl"
51
+ sha256 "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
52
+ end
53
+ resource "six" do
54
+ url "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl"
55
+ sha256 "4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"
56
+ end
57
+ resource "typing-extensions" do
58
+ url "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl"
59
+ sha256 "f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"
60
+ end
61
+ resource "typing-inspection" do
62
+ url "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl"
63
+ sha256 "4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7"
64
+ end
65
+
66
+ def install
67
+ if OS.mac?
68
+ ENV.append "LDFLAGS", "-Wl,-headerpad_max_install_names"
69
+ ENV.append "RUSTFLAGS", "-C link-arg=-Wl,-headerpad_max_install_names"
70
+ end
71
+
72
+ venv = virtualenv_create(libexec, "python3.14")
73
+
74
+ resource("annotated-types").stage do
75
+ wheel = Dir["*.whl"].first
76
+ if wheel
77
+ venv.pip_install Pathname(wheel)
78
+ else
79
+ venv.pip_install Pathname.pwd
80
+ end
81
+ end
82
+
83
+ resource("github-copilot-sdk").stage do
84
+ if OS.mac? && Hardware::CPU.arm?
85
+ venv.pip_install Pathname(Dir["*.whl"].first)
86
+ elsif OS.mac? && Hardware::CPU.intel?
87
+ venv.pip_install Pathname(Dir["*.whl"].first)
88
+ elsif OS.linux?
89
+ venv.pip_install Pathname(Dir["*.whl"].first)
90
+ else
91
+ venv.pip_install Pathname.pwd
92
+ end
93
+ end
94
+
95
+ resource("pydantic").stage do
96
+ wheel = Dir["*.whl"].first
97
+ if wheel
98
+ venv.pip_install Pathname(wheel)
99
+ else
100
+ venv.pip_install Pathname.pwd
101
+ end
102
+ end
103
+
104
+ resource("pydantic-core").stage do
105
+ if OS.mac? && Hardware::CPU.arm?
106
+ venv.pip_install Pathname(Dir["*.whl"].first)
107
+ elsif OS.mac? && Hardware::CPU.intel?
108
+ venv.pip_install Pathname(Dir["*.whl"].first)
109
+ elsif OS.linux?
110
+ venv.pip_install Pathname(Dir["*.whl"].first)
111
+ else
112
+ venv.pip_install Pathname.pwd
113
+ end
114
+ end
115
+
116
+ resource("python-dateutil").stage do
117
+ wheel = Dir["*.whl"].first
118
+ if wheel
119
+ venv.pip_install Pathname(wheel)
120
+ else
121
+ venv.pip_install Pathname.pwd
122
+ end
123
+ end
124
+
125
+ resource("six").stage do
126
+ wheel = Dir["*.whl"].first
127
+ if wheel
128
+ venv.pip_install Pathname(wheel)
129
+ else
130
+ venv.pip_install Pathname.pwd
131
+ end
132
+ end
133
+
134
+ resource("typing-extensions").stage do
135
+ wheel = Dir["*.whl"].first
136
+ if wheel
137
+ venv.pip_install Pathname(wheel)
138
+ else
139
+ venv.pip_install Pathname.pwd
140
+ end
141
+ end
142
+
143
+ resource("typing-inspection").stage do
144
+ wheel = Dir["*.whl"].first
145
+ if wheel
146
+ venv.pip_install Pathname(wheel)
147
+ else
148
+ venv.pip_install Pathname.pwd
149
+ end
150
+ end
151
+
152
+ venv.pip_install buildpath
153
+ bin.install_symlink libexec/"bin/impliforge"
154
+ end
155
+
156
+ test do
157
+ system "#{bin}/impliforge", "--help"
158
+ end
159
+ end
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rio Fujita
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,25 @@
1
+ SHELL := /bin/sh
2
+
3
+ REPO_ROOT := $(CURDIR)
4
+ UV ?= uv
5
+ DIST_DIR := $(REPO_ROOT)/dist
6
+ FORMULA_DIR := $(REPO_ROOT)/Formula
7
+ FORMULA_FILE := $(FORMULA_DIR)/impliforge.rb
8
+
9
+ .PHONY: release-artifacts sync build formula
10
+
11
+ release-artifacts: sync build formula
12
+
13
+ sync:
14
+ $(UV) sync --extra test --group dev
15
+
16
+ build:
17
+ rm -rf "$(DIST_DIR)"
18
+ $(UV) build
19
+
20
+ formula:
21
+ mkdir -p "$(FORMULA_DIR)"
22
+ genformula \
23
+ --source-subdir . \
24
+ --pyproject "$(REPO_ROOT)/pyproject.toml" \
25
+ --output "$(FORMULA_FILE)"
@@ -0,0 +1,174 @@
1
+ Metadata-Version: 2.4
2
+ Name: impliforge
3
+ Version: 0.1.1
4
+ Summary: Orchestrator-centric multi-agent workflow runner built on the GitHub Copilot SDK
5
+ Author-email: Rio Fujita <rio_github@rio.st>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 Rio Fujita
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+ License-File: LICENSE
28
+ Keywords: agents,automation,copilot,orchestrator,workflow
29
+ Classifier: Development Status :: 3 - Alpha
30
+ Classifier: Intended Audience :: Developers
31
+ Classifier: License :: OSI Approved :: MIT License
32
+ Classifier: Programming Language :: Python :: 3
33
+ Classifier: Programming Language :: Python :: 3.14
34
+ Classifier: Topic :: Software Development :: Build Tools
35
+ Classifier: Topic :: Software Development :: Testing
36
+ Requires-Python: >=3.14
37
+ Requires-Dist: github-copilot-sdk>=0.2.1
38
+ Provides-Extra: test
39
+ Requires-Dist: bandit>=1.7.10; extra == 'test'
40
+ Requires-Dist: pytest-cov>=7; extra == 'test'
41
+ Requires-Dist: pytest>=9; extra == 'test'
42
+ Description-Content-Type: text/markdown
43
+
44
+ # impliforge
45
+
46
+ `impliforge` is an orchestrator-centric multi-agent workflow tool built on top of the GitHub Copilot SDK.
47
+
48
+ It treats requirement analysis, planning, documentation generation, implementation proposals, test design and execution, review, fix loops, and artifact persistence as one end-to-end workflow.
49
+
50
+ ## License
51
+
52
+ This project is licensed under the MIT License. See `LICENSE` for details.
53
+
54
+ ## Features
55
+
56
+ - Multi-agent workflow covering requirements, planning, documentation, implementation, test design, test execution, review, and fix loops
57
+ - Session snapshot, restore, and rotation support
58
+ - Task-aware model routing
59
+ - Operator-facing run summaries, final summaries, review reports, and fix reports
60
+ - Acceptance gating and completion evidence
61
+ - Approval-aware safe edit orchestration
62
+
63
+ ## Installation
64
+
65
+ This project uses `uv` for dependency management and execution.
66
+
67
+ Install the default dependencies:
68
+
69
+ ```sh
70
+ uv sync
71
+ ```
72
+
73
+ Install test dependencies as well:
74
+
75
+ ```sh
76
+ uv sync --extra test
77
+ ```
78
+
79
+ ## CLI Usage
80
+
81
+ `impliforge` accepts a **requirement file path** as its positional argument, not an inline requirement string.
82
+
83
+ ### Basic usage
84
+
85
+ ```sh
86
+ uv run impliforge requirements/sample-requirement.md
87
+ ```
88
+
89
+ Or run it as a module:
90
+
91
+ ```sh
92
+ uv run python -m impliforge requirements/sample-requirement.md
93
+ ```
94
+
95
+ ### With options
96
+
97
+ ```sh
98
+ uv run impliforge requirements/sample-requirement.md \
99
+ --model gpt-5.4 \
100
+ --routing-mode quality \
101
+ --token-usage-ratio 0.35 \
102
+ --artifacts-dir artifacts \
103
+ --docs-dir docs
104
+ ```
105
+
106
+ ## Requirement File Format
107
+
108
+ Requirement files are expected to be plain text or Markdown. Multi-line requirements are supported and recommended.
109
+
110
+ Example:
111
+
112
+ ```md
113
+ Build a multi-agent environment using the GitHub Copilot SDK
114
+
115
+ - Support session persistence
116
+ - Include review and fix loops
117
+ - Persist outputs under docs/ and artifacts/
118
+ ```
119
+
120
+ ## Error Handling
121
+
122
+ The CLI exits with an error when:
123
+
124
+ - The specified requirement file does not exist
125
+ - The requirement file is empty
126
+ - The requirement file cannot be read
127
+
128
+ Example:
129
+
130
+ ```sh
131
+ uv run impliforge requirements/missing.md
132
+ # error: requirement file not found: requirements/missing.md
133
+ ```
134
+
135
+ ## Generated Outputs
136
+
137
+ The workflow primarily generates the following outputs.
138
+
139
+ ### Documentation outputs
140
+
141
+ - `docs/design.md`
142
+ - `docs/runbook.md`
143
+ - `docs/test-plan.md`
144
+ - `docs/test-results.md`
145
+ - `docs/review-report.md`
146
+ - `docs/fix-report.md`
147
+ - `docs/final-summary.md`
148
+
149
+ ### Artifact outputs
150
+
151
+ - `artifacts/workflow-state.json`
152
+ - `artifacts/sessions/<session_id>/session-snapshot.json`
153
+ - `artifacts/workflows/<workflow_id>/workflow-details.json`
154
+ - `artifacts/summaries/<workflow_id>/run-summary.json`
155
+
156
+ ## Validation
157
+
158
+ Run the full test suite:
159
+
160
+ ```sh
161
+ uv run pytest -q tests
162
+ ```
163
+
164
+ Run tests with coverage:
165
+
166
+ ```sh
167
+ uv run pytest --cov=src/impliforge --cov-report=term-missing:skip-covered -q tests
168
+ ```
169
+
170
+ ## Notes
171
+
172
+ - Generated outputs under `docs/` and `artifacts/` are treated as normal workflow outputs
173
+ - Source edits are expected to go through approval-aware paths
174
+ - Open questions should be treated as either resolved or explicitly deferred
@@ -0,0 +1,129 @@
1
+ # impliforge
2
+
3
+ `impliforge` は、GitHub Copilot SDK を基盤にした orchestrator-centric なマルチエージェント実行ツール。
4
+
5
+ 要件分析、計画、ドキュメント生成、実装提案、テスト設計・実行、レビュー、修正ループ、成果物保存までを一連の workflow として扱う。
6
+
7
+ ## ライセンス
8
+
9
+ このプロジェクトは MIT License の下で提供される。詳細は `LICENSE` を参照。
10
+
11
+ ## 主な機能
12
+
13
+ - requirements / planning / documentation / implementation / test_design / test_execution / review / fix loop を持つ workflow
14
+ - session snapshot / restore / rotation
15
+ - task-aware model routing
16
+ - operator-facing run summary / final summary / review / fix artifacts
17
+ - acceptance gating と completion evidence
18
+ - approval-aware safe edit orchestration
19
+
20
+ ## インストール
21
+
22
+ 依存解決と実行は `uv` 前提。
23
+
24
+ ```sh
25
+ uv sync
26
+ ```
27
+
28
+ テスト依存も入れる場合:
29
+
30
+ ```sh
31
+ uv sync --extra test
32
+ ```
33
+
34
+ ## CLI の使い方
35
+
36
+ `impliforge` は**要件文字列そのものではなく、要件を書いたファイルパス**を位置引数として受け取る。
37
+
38
+ ### 基本
39
+
40
+ ```sh
41
+ uv run impliforge requirements/sample-requirement.md
42
+ ```
43
+
44
+ または module 実行:
45
+
46
+ ```sh
47
+ uv run python -m impliforge requirements/sample-requirement.md
48
+ ```
49
+
50
+ ### オプション付き
51
+
52
+ ```sh
53
+ uv run impliforge requirements/sample-requirement.md \
54
+ --model gpt-5.4 \
55
+ --routing-mode quality \
56
+ --token-usage-ratio 0.35 \
57
+ --artifacts-dir artifacts \
58
+ --docs-dir docs
59
+ ```
60
+
61
+ ## 要件ファイルの形式
62
+
63
+ 要件ファイルは plain text / markdown を想定。複数行で書いてよい。
64
+
65
+ 例:
66
+
67
+ ```md
68
+ GitHub Copilot SDK を用いたマルチエージェント環境を構築する
69
+
70
+ - session persistence を持つこと
71
+ - review と fix loop を含むこと
72
+ - docs/ と artifacts/ に成果物を保存すること
73
+ ```
74
+
75
+ ## エラーハンドリング
76
+
77
+ 次の場合はエラー終了する。
78
+
79
+ - 指定した要件ファイルが存在しない
80
+ - 要件ファイルが空
81
+ - 要件ファイルを読み取れない
82
+
83
+ 例:
84
+
85
+ ```sh
86
+ uv run impliforge requirements/missing.md
87
+ # error: requirement file not found: requirements/missing.md
88
+ ```
89
+
90
+ ## 生成物
91
+
92
+ 主に以下を生成する。
93
+
94
+ ### docs
95
+
96
+ - `docs/design.md`
97
+ - `docs/runbook.md`
98
+ - `docs/test-plan.md`
99
+ - `docs/test-results.md`
100
+ - `docs/review-report.md`
101
+ - `docs/fix-report.md`
102
+ - `docs/final-summary.md`
103
+
104
+ ### artifacts
105
+
106
+ - `artifacts/workflow-state.json`
107
+ - `artifacts/sessions/<session_id>/session-snapshot.json`
108
+ - `artifacts/workflows/<workflow_id>/workflow-details.json`
109
+ - `artifacts/summaries/<workflow_id>/run-summary.json`
110
+
111
+ ## 検証
112
+
113
+ 全体テスト:
114
+
115
+ ```sh
116
+ uv run pytest -q tests
117
+ ```
118
+
119
+ coverage:
120
+
121
+ ```sh
122
+ uv run pytest --cov=src/impliforge --cov-report=term-missing:skip-covered -q tests
123
+ ```
124
+
125
+ ## 補足
126
+
127
+ - `docs/` と `artifacts/` への生成物保存は通常運用として扱う
128
+ - source edit は approval-aware な経路を通す前提
129
+ - unresolved open questions は resolved または explicitly deferred として扱う
@@ -0,0 +1,131 @@
1
+ # impliforge
2
+
3
+ `impliforge` is an orchestrator-centric multi-agent workflow tool built on top of the GitHub Copilot SDK.
4
+
5
+ It treats requirement analysis, planning, documentation generation, implementation proposals, test design and execution, review, fix loops, and artifact persistence as one end-to-end workflow.
6
+
7
+ ## License
8
+
9
+ This project is licensed under the MIT License. See `LICENSE` for details.
10
+
11
+ ## Features
12
+
13
+ - Multi-agent workflow covering requirements, planning, documentation, implementation, test design, test execution, review, and fix loops
14
+ - Session snapshot, restore, and rotation support
15
+ - Task-aware model routing
16
+ - Operator-facing run summaries, final summaries, review reports, and fix reports
17
+ - Acceptance gating and completion evidence
18
+ - Approval-aware safe edit orchestration
19
+
20
+ ## Installation
21
+
22
+ This project uses `uv` for dependency management and execution.
23
+
24
+ Install the default dependencies:
25
+
26
+ ```sh
27
+ uv sync
28
+ ```
29
+
30
+ Install test dependencies as well:
31
+
32
+ ```sh
33
+ uv sync --extra test
34
+ ```
35
+
36
+ ## CLI Usage
37
+
38
+ `impliforge` accepts a **requirement file path** as its positional argument, not an inline requirement string.
39
+
40
+ ### Basic usage
41
+
42
+ ```sh
43
+ uv run impliforge requirements/sample-requirement.md
44
+ ```
45
+
46
+ Or run it as a module:
47
+
48
+ ```sh
49
+ uv run python -m impliforge requirements/sample-requirement.md
50
+ ```
51
+
52
+ ### With options
53
+
54
+ ```sh
55
+ uv run impliforge requirements/sample-requirement.md \
56
+ --model gpt-5.4 \
57
+ --routing-mode quality \
58
+ --token-usage-ratio 0.35 \
59
+ --artifacts-dir artifacts \
60
+ --docs-dir docs
61
+ ```
62
+
63
+ ## Requirement File Format
64
+
65
+ Requirement files are expected to be plain text or Markdown. Multi-line requirements are supported and recommended.
66
+
67
+ Example:
68
+
69
+ ```md
70
+ Build a multi-agent environment using the GitHub Copilot SDK
71
+
72
+ - Support session persistence
73
+ - Include review and fix loops
74
+ - Persist outputs under docs/ and artifacts/
75
+ ```
76
+
77
+ ## Error Handling
78
+
79
+ The CLI exits with an error when:
80
+
81
+ - The specified requirement file does not exist
82
+ - The requirement file is empty
83
+ - The requirement file cannot be read
84
+
85
+ Example:
86
+
87
+ ```sh
88
+ uv run impliforge requirements/missing.md
89
+ # error: requirement file not found: requirements/missing.md
90
+ ```
91
+
92
+ ## Generated Outputs
93
+
94
+ The workflow primarily generates the following outputs.
95
+
96
+ ### Documentation outputs
97
+
98
+ - `docs/design.md`
99
+ - `docs/runbook.md`
100
+ - `docs/test-plan.md`
101
+ - `docs/test-results.md`
102
+ - `docs/review-report.md`
103
+ - `docs/fix-report.md`
104
+ - `docs/final-summary.md`
105
+
106
+ ### Artifact outputs
107
+
108
+ - `artifacts/workflow-state.json`
109
+ - `artifacts/sessions/<session_id>/session-snapshot.json`
110
+ - `artifacts/workflows/<workflow_id>/workflow-details.json`
111
+ - `artifacts/summaries/<workflow_id>/run-summary.json`
112
+
113
+ ## Validation
114
+
115
+ Run the full test suite:
116
+
117
+ ```sh
118
+ uv run pytest -q tests
119
+ ```
120
+
121
+ Run tests with coverage:
122
+
123
+ ```sh
124
+ uv run pytest --cov=src/impliforge --cov-report=term-missing:skip-covered -q tests
125
+ ```
126
+
127
+ ## Notes
128
+
129
+ - Generated outputs under `docs/` and `artifacts/` are treated as normal workflow outputs
130
+ - Source edits are expected to go through approval-aware paths
131
+ - Open questions should be treated as either resolved or explicitly deferred