From 6303dfe6eb2215ae79ab63a2b92b86d7fafd312d Mon Sep 17 00:00:00 2001 From: Mikhail Date: Sun, 16 Aug 2026 17:44:33 +0300 Subject: [PATCH] docs: prohibit docker-test for Assistant --- AGENTS.md | 1 + dev/ACTIVE_TASK.json | 6 +- ...EV-000034-production-host-only-policy.json | 65 +++++++++++++++++++ 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 dev/tasks/DEV-000034-production-host-only-policy.json diff --git a/AGENTS.md b/AGENTS.md index c11e527..cf6872a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -57,6 +57,7 @@ Never “make it work somehow” by violating a boundary. - Canonical remote: `https://git.cin.su/m/Assistant.git`. - Target deployment control plane: `https://docker.cin.su` (Portainer). +- This project must not use `docker-test`, `test-docker`, or `docker-test.cin.su` for builds, CI runners, tests, deployment, backups, or project data unless the user gives a new explicit project-specific authorization. - Use configured credential helpers first; never echo secrets. - If push/deploy credentials are unavailable, ask the user for the minimum needed access. - Ordinary Codex work happens on a branch/worktree, never directly on protected `main`. diff --git a/dev/ACTIVE_TASK.json b/dev/ACTIVE_TASK.json index b74e1e7..4b3b101 100644 --- a/dev/ACTIVE_TASK.json +++ b/dev/ACTIVE_TASK.json @@ -1,5 +1,5 @@ { - "task_file": "dev/tasks/DEV-000033-creator-username-password.json", - "task_id": "DEV-000033", - "task_revision": 2 + "task_file": "dev/tasks/DEV-000034-production-host-only-policy.json", + "task_id": "DEV-000034", + "task_revision": 1 } diff --git a/dev/tasks/DEV-000034-production-host-only-policy.json b/dev/tasks/DEV-000034-production-host-only-policy.json new file mode 100644 index 0000000..47ad7b8 --- /dev/null +++ b/dev/tasks/DEV-000034-production-host-only-policy.json @@ -0,0 +1,65 @@ +{ + "task_id": "DEV-000034", + "task_revision": 1, + "architecture_revision": "ADR-0004", + "base_repo_revision": "5fca81531a9d1ee26050a5d48e2d5b199135aa4e", + "risk_tier": "E", + "intent": "Make the existing project-specific production-host-only rule explicit and fail closed against accidental use of the shared docker-test host.", + "requirement_ids": ["USER-DOCKER-PROD-ONLY", "CONSTITUTION-1.3.36"], + "allowed_change_scope": { + "modules": [], + "paths": [ + "AGENTS.md", + "dev/ACTIVE_TASK.json", + "dev/tasks/DEV-000034-production-host-only-policy.json" + ] + }, + "forbidden_change_scope": { + "paths": [ + "architecture/**", + "ci/**", + ".gitea/**", + "cmd/**", + "contracts/**", + "modules/**", + "database/**", + "deploy/**", + "security/**" + ] + }, + "allowed_architecture_delta": { + "new_cross_module_dependencies": 0, + "new_canonical_owners": 0, + "new_privileges": 0 + }, + "contracts": { + "consume": [], + "may_change": [] + }, + "semantic_owner": "none; repository operations policy only", + "canonical_state": ["none"], + "state_transitions": ["none"], + "side_effects_and_privileges": ["future project operations are limited to docker.cin.su unless the user explicitly re-authorizes another host"], + "persistence_and_migrations": ["none"], + "failure_retry_restart": ["operations targeting docker-test must stop before mutation and report the policy conflict"], + "assumptions": [ + "The user explicitly reconfirmed that this project has a hard rule prohibiting docker-test", + "The production Docker host remains docker.cin.su" + ], + "acceptance_scenarios": [ + "AGENTS.md explicitly prohibits docker-test aliases and hostname for all project operations", + "the rule allows an exception only after new explicit project-specific user authorization", + "no runtime, contract, schema, dependency, privilege or deployment configuration changes", + "exact diff validation observes only this policy task's three declared paths" + ], + "required_tests": [ + "architecture preflight", + "exact diff scope", + "repository status", + "production runner and application health" + ], + "terminal_gap_states": [ + "BLOCKED_BY_ARCHITECTURE_GAP", + "BLOCKED_BY_CONFLICT" + ] +}