Metadata-Version: 2.4
Name: impliforge
Version: 0.1.3
Summary: Orchestrator-centric multi-agent workflow runner built on the GitHub Copilot SDK
Author-email: Rio Fujita <rio_github@rio.st>
License: MIT License
        
        Copyright (c) 2026 Rio Fujita
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: agents,automation,copilot,orchestrator,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.14
Requires-Dist: github-copilot-sdk>=0.2.1
Provides-Extra: test
Requires-Dist: bandit>=1.7.10; extra == 'test'
Requires-Dist: pytest-cov>=7; extra == 'test'
Requires-Dist: pytest>=9; extra == 'test'
Description-Content-Type: text/markdown

# impliforge

`impliforge` is an orchestrator-centric multi-agent workflow tool built on top of the GitHub Copilot SDK.

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.

## License

This project is licensed under the MIT License. See `LICENSE` for details.

## Features

- Multi-agent workflow covering requirements, planning, documentation, implementation, test design, test execution, review, and fix loops
- Session snapshot, restore, and rotation support
- Task-aware model routing
- Operator-facing run summaries, final summaries, review reports, and fix reports
- Acceptance gating and completion evidence
- Approval-aware safe edit orchestration

## Installation

This project uses `uv` for dependency management and execution.

Install the default dependencies:

```sh
uv sync
```

Install test dependencies as well:

```sh
uv sync --extra test
```

## CLI Usage

`impliforge` accepts a **requirement file path** as its positional argument, not an inline requirement string.

### Basic usage

```sh
uv run impliforge requirements/sample-requirement.md
```

Or run it as a module:

```sh
uv run python -m impliforge requirements/sample-requirement.md
```

### With options

```sh
uv run impliforge requirements/sample-requirement.md \
  --model gpt-5.4 \
  --routing-mode quality \
  --token-usage-ratio 0.35 \
  --artifacts-dir artifacts \
  --docs-dir docs
```

## Requirement File Format

Requirement files are expected to be plain text or Markdown. Multi-line requirements are supported and recommended.

Example:

```md
Build a multi-agent environment using the GitHub Copilot SDK

- Support session persistence
- Include review and fix loops
- Persist outputs under docs/ and artifacts/
```

## Error Handling

The CLI exits with an error when:

- The specified requirement file does not exist
- The requirement file is empty
- The requirement file cannot be read

Example:

```sh
uv run impliforge requirements/missing.md
# error: requirement file not found: requirements/missing.md
```

## Generated Outputs

The workflow primarily generates the following outputs.

### Documentation outputs

- `docs/design.md`
- `docs/runbook.md`
- `docs/test-plan.md`
- `docs/test-results.md`
- `docs/review-report.md`
- `docs/fix-report.md`
- `docs/final-summary.md`

### Artifact outputs

- `artifacts/workflow-state.json`
- `artifacts/sessions/<session_id>/session-snapshot.json`
- `artifacts/workflows/<workflow_id>/workflow-details.json`
- `artifacts/summaries/<workflow_id>/run-summary.json`

## Validation

Run the full test suite:

```sh
uv run pytest -q tests
```

Run tests with coverage:

```sh
uv run pytest --cov=src/impliforge --cov-report=term-missing:skip-covered -q tests
```

## Notes

- Generated outputs under `docs/` and `artifacts/` are treated as normal workflow outputs
- Source edits are expected to go through approval-aware paths
- Open questions should be treated as either resolved or explicitly deferred