diff --git a/.agent/project.yaml b/.agent/project.yaml new file mode 100644 index 0000000..851eeb7 --- /dev/null +++ b/.agent/project.yaml @@ -0,0 +1,166 @@ +schema_version: 2 +registry: + required_profiles: + - project/script_toolkit@1 + - language/python@1 + - runtime/command_line@1 + - framework/python_scripts@1 + - interface/cli@1 + - environment/python_environment@1 + - tool/python_pytest@1 + - acceptance/cli_command@1 + - acceptance/package_import@1 +project: + kind: script_toolkit + name: product-54354138-1 +contract: + required_paths: + - tools + - tests + - tests/test_example.py + - tools/example.py + - examples/input.json + support_paths: + - .env.example + - pyproject.toml + - uv.lock + command_paths: + - tools + - tests + - tests/test_example.py + - tools/example.py + - examples/input.json + protected_paths: + exact: + - .agent/project.yaml + - .agent/acceptance.yaml + prefixes: + - .gitea/workflows/ +configuration: + files: + - id: sample-input + path: examples/input.json + kind: input_example + required: true + - id: example-env + path: .env.example + kind: env_example + required: true + environment: + required: [] + optional: + - LOG_LEVEL +components: +- id: tools + kind: toolkit + languages: + - python + runtime: command_line + interfaces: + - cli + framework_profiles: + - python_scripts + environment: + profile: python_environment + dependency_files: + - pyproject.toml + required_commands: + - python + path_prepend: + - .venv/bin + bootstrap: + command: python -m venv .venv && .venv/bin/python -m pip install -e '.[dev]' + owner: facade + repair_role: provisioner + required_paths: + - pyproject.toml + ephemeral_paths: + - .venv + dependencies: + model: language/python@1:uv_project + working_directory: . + manager: uv + manifests: + - pyproject.toml + resolution_files: + - uv.lock + reproducibility: lockfile + operations: + update: + status: supported + phases: + - id: resolve + command: uv lock + failure_disposition: continue_session + - id: materialize + command: uv sync --locked --no-default-groups --extra dev + failure_disposition: recreate_session + restore: + status: supported + phases: + - id: materialize + command: uv sync --locked --no-default-groups --extra dev + failure_disposition: recreate_session + requirements: + - id: python_pytest + profile: tool/python_pytest@1 + provision_source: project_dependency + dependency_role: test + package: + ecosystem: python + name: pytest + commands: + validate: + verification_roles: + - artifact_validation + - quality_gate + command: python -m compileall tools tests + required_paths: + - pyproject.toml + - tools + - tests + test: + verification_roles: + - automated_test + - quality_gate + execution_profile: tool/python_pytest@1 + command: pytest + required_paths: + - pyproject.toml + - tests/test_example.py + smoke: + verification_roles: + - behavior_smoke + - integration_validation + command: python -m tools.example examples/input.json + config: sample-input + required_paths: + - pyproject.toml + - tools/example.py + - examples/input.json +acceptance: +- id: import-package + verification_roles: + - artifact_validation + kind: package_import + component: tools + package: tools +- id: help-command + verification_roles: + - interface_acceptance + kind: cli_command + component: tools + config: sample-input + command: python -m tools.example --help + expect_exit_code: 0 + required_paths: + - tools/example.py +ci: + required: true + required_checks: + - repository_validation + required_commands: + - validate + - test +facade_placement: + kind: repository_root