diff --git a/.claude/settings.json b/.claude/settings.json index f741e35..9e1791c 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -17,7 +17,11 @@ "Bash(pytest *)", "Bash(node *)", "Bash(npm test)", - "Bash(npm run *)" + "Bash(npm run *)", + "Bash(gh pr create *)", + "Bash(gh pr view *)", + "Bash(gh pr edit *)", + "Bash(gh auth status)" ] } } diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 8730d85..499830b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -3,12 +3,16 @@ "image": "mcr.microsoft.com/devcontainers/base:bookworm", // Features minimales : git (déjà présent sur l'image de base, mais on fige - // la version) et Node.js, requis pour exécuter le CLI Claude Code. + // la version), Node.js, requis pour exécuter le CLI Claude Code, et gh + // (crée des pull requests avec un titre et une description dignes de ce nom + // au lieu du minimum généré par la comparaison de branches sur GitHub — + // nécessite ensuite `gh auth login`, une étape manuelle et interactive). "features": { "ghcr.io/devcontainers/features/git:1": {}, "ghcr.io/devcontainers/features/node:1": { "version": "lts" - } + }, + "ghcr.io/devcontainers/features/github-cli:1": {} }, "customizations": { diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..b50e091 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,23 @@ +name: Harnais HOLON + +on: + push: + pull_request: + +jobs: + test: + name: node --test (framework/tests) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "22" + - run: npm test + - name: Vérifie que le lanceur se résout sans erreur (--dry-run) + run: | + mkdir -p /tmp/holon-ci/mission/registry/instances /tmp/holon-ci/mission/concepteur + cp -r framework /tmp/holon-ci/framework + echo "Objectif de test CI." > /tmp/holon-ci/mission/OBJECTIVE.md + cd /tmp/holon-ci + node framework/bin/holon-spawn.js --bootstrap --dry-run