Local full-stack check:
bash scripts/ci-full-stack.sh
Installs sibling repos when present (../vallm, ../redup) and runs:
intract validate examples/full-stack
intract duplicates examples/full-stack
vallm intract examples/full-stack
vallm intract examples/web-app/iterations/v1-pass --manifest examples/web-app/intract.yaml
redup scan examples/full-stack --intent
Policy (fail_on / warn_on) — vallm łączy ustawienia z intract.yaml / intract.config.yaml:
# env (vallm)
export VALLM_INTRACT_FAIL_ON=violation,missing_required_p1,invalid_manifest
export VALLM_INTRACT_WARN_ON=partial,unknown
# CLI override
vallm intract . --fail-on violation --warn-on partial
GitHub Actions job full-stack-integration checkoutuje sibling repos (vallm, redup) i uruchamia pełny skrypt (bez SKIP_VALLM / SKIP_REDUP).
Intract generuje planfile-compatible tickety i może synchronizować je z HTTP API.
Komendy:
python -m intract tickets .
python -m intract validate . --planfile
python -m intract planfile push . --url https://planfile.example/api
python -m intract planfile pull .
python -m intract planfile sync .
Zmienne środowiskowe: PLANFILE_URL, PLANFILE_TOKEN, PLANFILE_PROJECT, PLANFILE_WEBHOOK_URL, PLANFILE_WEBHOOK_SECRET.
Webhook:
intract planfile webhook-test --url https://hooks.example/intract
intract planfile webhook-apply . event.json
Outbound events: tickets.exported, tickets.pushed, tickets.synced. Inbound: ticket.updated / tickets.updated aktualizuje status w .intract/planfile-tickets.json.
Pliki:
.intract/planfile-tickets.yaml
.intract/planfile-tickets.json
.intract/TODO.intract.md
Kod:
Composite action w repozytorium:
- uses: semcod/intract@v0
with:
path: .
manifest: intract.yaml
staged: "false"
Plik: action.yml
Extension: extensions/vscode-intract/
@intract.v1 w komentarzachPliki:
Użycie w projekcie:
repos:
- repo: local
hooks:
- id: intract
name: intract intent contracts
entry: intract check --staged --hunks
language: system
pass_filenames: false
--hunks waliduje tylko kontrakty dotknięte staged diffem.
Workflow:
Generuje SARIF:
python -m intract check . --format sarif --output intract.sarif
Dockerfile:
Walidacja:
python -m intract artifact Dockerfile
Kontrakty w OpenAPI używają x-intract.
Przykład:
Walidacja:
python -m intract artifact openapi.yaml
Walidacja:
python -m intract artifact k8s/deployment.yaml
Cinema (Nexu) proposes contracts via intract.proposals and appends them to
intract_policy_ledger.json. After each iteration with annotations, Intract
validates the evolved HTML together with proposed @intract.v1 lines.
CLI — propose from KEEP/DELETE:
intract propose delta --delete Mod,deg --keep screen --stage 0 --capsule scientific_calc
CLI — propose from artifact via LLM (pip install 'intract[llm]'):
intract propose llm --file stage0.html --goal "scientific calculator UI"
CLI — merge evolved ledger entries into project manifest:
intract manifest apply-ledger \
--manifest examples/web_app_calculator/workspace/intract.yaml \
--ledger .nexu/capsules/scientific_calc/cinema/intract_policy_ledger.json
Dry-run:
intract manifest apply-ledger -m intract.yaml -l cinema/intract_policy_ledger.json --dry-run
Project + capsule manifests (--target both):
intract manifest apply-ledger \
-w examples/web_app_calculator/workspace \
-c scientific_calc \
-l .nexu/capsules/scientific_calc/cinema/intract_policy_ledger.json \
--target both
Cinema player: Project / Capsule / Both buttons call POST /manifest/apply-ledger with target; Verify calls POST /capsule/verify (nexu verify_capsule). Stop stale servers: make cinema-stop in the nexu repo.
Zainstalowanie:
pip install -e ../intract
pip install -e "../vallm[intract]"
CLI:
vallm validate --file app.py --intract
vallm batch src --recursive --intract
vallm intract .
vallm intract . --staged
vallm intract . --changed --base main
MCP tools (mcp/server/_tools_vallm.py):
validate_intent_contracts — snippet z @intractvalidate_intract_project — walidacja projektuvalidate_intract_staged — staged check przed commitemAdapter:
Zainstalowanie:
pip install -e ../intract
pip install -e "../redup[intent]"
CLI:
redup scan . --intent --intent-threshold 0.84
redup scan . --intent --intent-manifest intract.yaml
redup scan . --intent --intent-fail-on violation,intent_duplicate
redup intract .
redup intract . --manifest intract.yaml --fail-on violation,missing_required_p1,intent_duplicate
redup intract . --format json
Policy tokens (fail_on / warn_on): violation, partial, fail, intent_duplicate, missing_required_p1, invalid_manifest.
MCP scan params: intent, intent_threshold, intent_manifest.
Adapter:
Intent duplicate groups are tagged with engine: intract in JSON/Markdown/TOON reporters.
Standalone JSON-RPC MCP server:
intract-mcp
# or
python -m intract.mcp.server
Tools: validate_project, validate_staged, validate_intent_snippet, find_duplicates, build_graph, scan_artifacts, project_info.
Kod: src/intract/mcp/
Domyślne fail_on:
fail_on: ["violation", "invalid_manifest"]
Stopniowe zaostrzanie:
fail_on: ["violation", "missing_required_p1", "invalid_manifest"]
missing_required_p1 sprawdza brakujące require wymagane przez kontrakty manifestu z priority: 1.