36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# Application Landing Zone Agent
|
|
|
|
This repository contains the `application_landing_zone_agent`, which turns application requirements into two reviewable artifacts:
|
|
|
|
1. a Technical Solution Design (TSD) document; and
|
|
2. a diagrams.net/draw.io architecture diagram (`.drawio`, uncompressed XML).
|
|
|
|
## Inspectable contract
|
|
|
|
The machine-readable contract is [`contracts/application_landing_zone_contract.json`](contracts/application_landing_zone_contract.json). The human-readable rules and repository map are in [`docs/CONTRACTS.md`](docs/CONTRACTS.md).
|
|
|
|
Expected runtime entry point: `application_landing_zone_agent` (the existing agent packaging/configuration in this repository supplies the callable wrapper). The callable input is an object with a required non-empty `application_requirements` string and optional `constraints`, `assumptions`, and `output_basename`. It returns an object containing `tsd_markdown` and `architecture_diagram_drawio` strings.
|
|
|
|
## Verification
|
|
|
|
Run the dependency-free verifier from the repository root:
|
|
|
|
```bash
|
|
python validation/verify_contract.py
|
|
```
|
|
|
|
Run the repository's normal test command as well (when configured by the agent template):
|
|
|
|
```bash
|
|
pytest -q
|
|
```
|
|
|
|
The verifier checks input/output contract examples, required TSD headings, and that the diagram is parseable draw.io XML with an `mxGraphModel`, at least one vertex, and at least one edge. It does not claim that an LLM response is semantically correct; reviewers must still inspect the generated design.
|
|
|
|
## Traceability
|
|
|
|
- Discovery conventions and required structure: `docs/CONTRACTS.md`, section “Repository conventions”.
|
|
- Agent behavior and workflow: `docs/CONTRACTS.md`, section “Behavior contract”.
|
|
- TSD and diagram acceptance rules: `contracts/application_landing_zone_contract.json` and `docs/CONTRACTS.md`.
|
|
- Independent executable checks: `validation/verify_contract.py`.
|