docs(devkit): ship Windows adoption guides

This commit is contained in:
thanhnv
2026-07-21 23:51:03 +07:00
parent 7b2ba60a3a
commit 6faf589694
6 changed files with 353 additions and 3 deletions
+10 -2
View File
@@ -88,7 +88,15 @@ for relative in ("AGENTS.md", "CLAUDE.md", ".github/copilot-instructions.md"):
path.write_text(updated.rstrip() + "\n", encoding="utf-8")
PY
cp "$SRC/docs/packaging/PROMPT_ENFORCEMENT_GUIDE.md" "$TARGET/docs/casan/CASAN_PROMPT_ENFORCEMENT.md"
python3 - "$SRC/docs/casan" "$TARGET/docs/casan" "$PROJECT" "$DOMAIN" <<'PY'
import pathlib, sys
source, target = pathlib.Path(sys.argv[1]), pathlib.Path(sys.argv[2])
project, domain = sys.argv[3], sys.argv[4]
for name in ("CASAN_ADOPTION_WINDOWS.md", "CASAN_PROMPT_ENFORCEMENT.md"):
text = (source / name).read_text(encoding="utf-8")
text = text.replace("__PROJECT_ID__", project).replace("__PROJECT_NAME__", domain)
(target / name).write_text(text, encoding="utf-8")
PY
# 4) Standalone Gitea contract workflow. The project's existing CI remains untouched.
cp "$SRC/packages/casan-devkit/templates/gitea-workflow/prompt-enforcement.yml" "$TARGET/.gitea/workflows/casan-prompt-enforcement.yml"
@@ -134,5 +142,5 @@ cat <<EOF
5. Send every AI prompt via: bin/casan-chat "<prompt>"
6. On Windows/WSL2 use: powershell -ExecutionPolicy Bypass -File bin/casan-chat.ps1 "<prompt>"
7. Verify enforcement: bin/casan prompt verify
See docs/casan/CASAN_PROMPT_ENFORCEMENT.md.
See docs/casan/CASAN_ADOPTION_WINDOWS.md and docs/casan/CASAN_PROMPT_ENFORCEMENT.md.
EOF
@@ -36,6 +36,11 @@ assert 'CASAN_PROJECT_ID: "sample-project"' in workflow
assert "__PROJECT_ID__" not in workflow
assert (root / "bin/casan-chat").exists()
assert (root / "bin/casan-chat.ps1").exists()
for relative in ("docs/casan/CASAN_ADOPTION_WINDOWS.md", "docs/casan/CASAN_PROMPT_ENFORCEMENT.md"):
text = (root / relative).read_text(encoding="utf-8")
assert "sample-project" in text
assert "Sample Project" in text or relative.endswith("CASAN_PROMPT_ENFORCEMENT.md")
assert "__PROJECT_ID__" not in text and "__PROJECT_NAME__" not in text
PY
(cd "$TARGET" && bin/casan prompt verify) | grep -q 'CASAN_PROMPT_ENFORCEMENT_VALID project=sample-project'