-
Notifications
You must be signed in to change notification settings - Fork 0
v2.0: pivot AI Code Debugger & Learning Tutor #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
aac85d7
6313ba5
58fc8b0
9ca979e
c62f469
e00304a
dbe6ab1
f7b0456
8264f0d
83214b0
75f2b80
4f8f4ff
a9d41af
b6615b6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # Kuro Rules - GitHub Copilot | ||
| # DO NOT EDIT. Edit AGENTS.md instead (master: ~/Documents/kuro-rules/AGENTS.md) | ||
|
|
||
| You MUST read AGENTS.md at the start of every session before any other action. | ||
| AGENTS.md contains all mandatory rules (R1-R81). It is a CONTRACT, not a suggestion. | ||
| After reading it, confirm: "I have read AGENTS.md and will enforce all rules." |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,76 @@ | ||||||||||||||
| # Kuro Rules Compliance — déployé automatiquement par sync-rules.ps1, NE PAS EDITER | ||||||||||||||
| # Force: fraîcheur des règles (R11/R105), fichiers protégés (R76), | ||||||||||||||
| # split PLAN/ROADMAP (R106), nommage de branche (R30). | ||||||||||||||
| name: kuro-rules-compliance | ||||||||||||||
|
|
||||||||||||||
| on: | ||||||||||||||
| push: | ||||||||||||||
| pull_request: | ||||||||||||||
| workflow_dispatch: | ||||||||||||||
|
|
||||||||||||||
| permissions: | ||||||||||||||
| contents: read | ||||||||||||||
|
|
||||||||||||||
| jobs: | ||||||||||||||
| compliance: | ||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||
| steps: | ||||||||||||||
| - uses: actions/checkout@v4 | ||||||||||||||
|
|
||||||||||||||
| - name: R76/R106 - fichiers prives non tracks | ||||||||||||||
| run: | | ||||||||||||||
| FAIL=0 | ||||||||||||||
| for f in PLAN.md SESSION_SUMMARY.md acquisition_tracker.md decision-memo.md LAUNCH_POSTS.md .env; do | ||||||||||||||
| if git ls-files --error-unmatch "$f" >/dev/null 2>&1; then | ||||||||||||||
| echo "::error file=$f::Fichier protege tracke (R76): git rm --cached $f" | ||||||||||||||
| FAIL=1 | ||||||||||||||
| fi | ||||||||||||||
| done | ||||||||||||||
| if git ls-files --error-unmatch PLAN.md >/dev/null 2>&1; then | ||||||||||||||
| echo "::error file=PLAN.md::PLAN.md doit rester PRIVE (R106)" | ||||||||||||||
| FAIL=1 | ||||||||||||||
| fi | ||||||||||||||
| exit $FAIL | ||||||||||||||
|
|
||||||||||||||
| - name: Regles AGENTS.md presentes et non alterees (manifest) | ||||||||||||||
| run: | | ||||||||||||||
| if [ ! -f AGENTS.md ]; then | ||||||||||||||
| echo "::error::AGENTS.md absent - lancer sync-rules.ps1 depuis kuro-rules" | ||||||||||||||
| exit 1 | ||||||||||||||
| fi | ||||||||||||||
| if [ ! -f .kuro/rules-manifest.json ]; then | ||||||||||||||
| echo "::warning::Pas de manifest .kuro/rules-manifest.json - synchro ancienne, fraicheur non verifiable" | ||||||||||||||
| exit 0 | ||||||||||||||
| fi | ||||||||||||||
| EXPECTED=$(python3 -c "import json;print(json.load(open('.kuro/rules-manifest.json'))['agentsSha256'])") | ||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: When a contributor changes Prompt for AI agents |
||||||||||||||
| EXPECTED_COUNT=$(python3 -c "import json;print(json.load(open('.kuro/rules-manifest.json'))['ruleCount'])") | ||||||||||||||
| ACTUAL=$(sha256sum AGENTS.md | cut -d' ' -f1) | ||||||||||||||
| ACTUAL_COUNT=$(grep -c '^\- \*\*rule_' AGENTS.md || true) | ||||||||||||||
| if [ "$ACTUAL" != "$EXPECTED" ]; then | ||||||||||||||
| echo "::error::AGENTS.md a derive du dernier manifest de synchro (edition locale ou synchro manquee). Relancer sync-rules.ps1." | ||||||||||||||
| exit 1 | ||||||||||||||
| fi | ||||||||||||||
| if [ "$ACTUAL_COUNT" != "$EXPECTED_COUNT" ]; then | ||||||||||||||
| echo "::error::Index de regles incoherent ($ACTUAL_COUNT vs $EXPECTED_COUNT attendues)." | ||||||||||||||
| exit 1 | ||||||||||||||
| fi | ||||||||||||||
| echo "OK: $ACTUAL_COUNT regles, hash conforme au manifest." | ||||||||||||||
|
|
||||||||||||||
| - name: R30 - nommage de branche (PR uniquement) | ||||||||||||||
| if: github.event_name == 'pull_request' | ||||||||||||||
| run: | | ||||||||||||||
| BR="${GITHUB_HEAD_REF}" | ||||||||||||||
| if echo "$BR" | grep -qE '^(main|master|develop|feat/|fix/|infra/|ceo/|sec/|chore/|docs/|test/)'; then | ||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win Anchor exact branch names in the branch policy.
Proposed fix- if echo "$BR" | grep -qE '^(main|master|develop|feat/|fix/|infra/|ceo/|sec/|chore/|docs/|test/)'; then
+ if echo "$BR" | grep -qE '^(main|master|develop)$|^(feat|fix|infra|ceo|sec|chore|docs|test)/.+$'; then📝 Committable suggestion
Suggested change
🤖 Prompt for AI AgentsThere was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: The branch check accepts invalid names such as Prompt for AI agents
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: The branch check accepts invalid names such as Prompt for AI agents
Suggested change
|
||||||||||||||
| echo "OK: branche '$BR' conforme (R30)." | ||||||||||||||
| else | ||||||||||||||
| echo "::error title=R30::Branche '$BR' viole la convention. Valides: main, master, develop, feat/*, fix/*, infra/*, ceo/*, sec/*, chore/*, docs/*, test/*" | ||||||||||||||
| exit 1 | ||||||||||||||
| fi | ||||||||||||||
|
|
||||||||||||||
| - name: R106 - ROADMAP.md public present (avertissement) | ||||||||||||||
| run: | | ||||||||||||||
| if [ ! -f ROADMAP.md ]; then | ||||||||||||||
| echo "::warning::ROADMAP.md absent (R106) - creer un roadmap public." | ||||||||||||||
| else | ||||||||||||||
| echo "OK: ROADMAP.md present." | ||||||||||||||
| fi | ||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| name: tests | ||
|
|
||
| on: | ||
| push: | ||
| branches: [main, master] | ||
| pull_request: | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| test: | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
| node: [18, 20, 22] | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: ${{ matrix.node }} | ||
| - run: npm install | ||
|
Check warning on line 25 in .github/workflows/test.yml
|
||
| - run: npm test | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| { | ||
| "syncedAt": "2026-08-26T08:44:34.9385622Z", | ||
| "generator": "sync-rules.ps1", | ||
| "agentsSha256": "f907386079f6db86f086e8f41af0f8582c84f144cfcfa593713ac9740e8cb9db", | ||
| "ruleCount": 52 | ||
| } |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,6 @@ | ||||||||||
| # Kuro Rules - Windsurf | ||||||||||
| # DO NOT EDIT. Edit AGENTS.md instead (master: ~/Documents/kuro-rules/AGENTS.md) | ||||||||||
|
|
||||||||||
| You MUST read AGENTS.md at the start of every session before any other action. | ||||||||||
| AGENTS.md contains all mandatory rules (R1-R81). It is a CONTRACT, not a suggestion. | ||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: Custom agent: Flag AI Slop and Fabricated Changes
Prompt for AI agents
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: Custom agent: Flag AI Slop and Fabricated Changes
Prompt for AI agents
Suggested change
|
||||||||||
| After reading it, confirm: "I have read AGENTS.md and will enforce all rules." | ||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P2: When a contributor changes
AGENTS.mdand.kuro/rules-manifest.jsontogether, this check accepts the altered rules because it trusts the hash from the same commit. Compare against a trusted baseline or canonical rules source instead of a mutable in-tree hash.Prompt for AI agents