Skip to content

feat(agentic-shell): freeze task object model + risk-based approval contract #1

feat(agentic-shell): freeze task object model + risk-based approval contract

feat(agentic-shell): freeze task object model + risk-based approval contract #1

Workflow file for this run

name: agentic-shell
on:
pull_request:
paths:
- 'schemas/agentic-task.schema.json'
- 'schemas/agentic-workset.schema.json'
- 'schemas/agentic-evidence-packet.schema.json'
- 'schemas/agentic-recommended-action.schema.json'
- 'examples/agentic-shell/**'
- 'scripts/validate_agentic_shell.py'
- '.github/workflows/agentic-shell.yml'
push:
branches:
- main
paths:
- 'schemas/agentic-task.schema.json'
- 'schemas/agentic-workset.schema.json'
- 'schemas/agentic-evidence-packet.schema.json'
- 'schemas/agentic-recommended-action.schema.json'
- 'examples/agentic-shell/**'
- 'scripts/validate_agentic_shell.py'
- '.github/workflows/agentic-shell.yml'
workflow_dispatch:
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: python -m pip install jsonschema
- name: Validate positive examples
run: python scripts/validate_agentic_shell.py
- name: Assert high-risk-without-approval fixture fails (approval model bites)
run: |
if python scripts/validate_agentic_shell.py \
examples/agentic-shell/negative/agentic-recommended-action.high-risk-no-approval.fail.json; then
echo 'negative fixture unexpectedly passed: high-risk action without approval'
exit 1
fi
- name: Assert waiting-for-approval-without-requirements fixture fails
run: |
if python scripts/validate_agentic_shell.py \
examples/agentic-shell/negative/agentic-task.waiting-approval-empty.fail.json; then
echo 'negative fixture unexpectedly passed: waiting_for_approval without approvalRequirements'
exit 1
fi