From 46874b9ada4e441bbfdb9659b37eaf9a914145d9 Mon Sep 17 00:00:00 2001 From: Gad Benram Date: Tue, 20 Oct 2026 00:22:53 +0100 Subject: [PATCH] Run intent checks on open PRs and submit explicitly without merging --- .github/workflows/grade.yml | 7 +++-- CLAUDE.md | 5 +++- README.md | 57 +++++++++++++++++++++++-------------- 3 files changed, 43 insertions(+), 26 deletions(-) diff --git a/.github/workflows/grade.yml b/.github/workflows/grade.yml index 6eed201..f72d206 100644 --- a/.github/workflows/grade.yml +++ b/.github/workflows/grade.yml @@ -1,12 +1,13 @@ name: Check intent submission on: - push: + pull_request: + types: [opened, synchronize, reopened] branches: [main] permissions: contents: read pull-requests: read jobs: grade: - uses: TensorOpsAI/tensorlearn-intent-grader/.github/workflows/grade.yml@9e40d82165c88f9028c6b119f5833dac5d48da9b + uses: TensorOpsAI/tensorlearn-intent-grader/.github/workflows/grade.yml@46de78b3462c3d3a18c2f55e81d645a816815302 with: - grader-sha: 9e40d82165c88f9028c6b119f5833dac5d48da9b + grader-sha: 46de78b3462c3d3a18c2f55e81d645a816815302 diff --git a/CLAUDE.md b/CLAUDE.md index 7fd3180..40fef02 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,4 +6,7 @@ Read @intent.md for the student's proposed implementation instructions. This round is about writing a useful intent document, not implementing the feature. Change only intent.md. Help the student reason about scope, constraints and testable acceptance criteria. Do not silently commit, push, open or merge a PR. The student -must explicitly choose to merge their solution PR into their own fork's main branch. +opens a PR inside their own fork, targeting that fork's main branch. Opening or +updating the PR starts advisory checks. Only the student's explicit /submit request +submits the selected pushed revision to TensorLearn. Keep the PR open; no merge is +required. Never present an Actions check as a saved official score. diff --git a/README.md b/README.md index 7d35a20..317363e 100644 --- a/README.md +++ b/README.md @@ -8,16 +8,30 @@ Read [the product brief and published rubric](docs/product-brief.md). 1. Fork this repository to your personal GitHub account. Use fictional information only, keep the fork public, and keep `main` as its default branch. -2. Clone your fork, open it in Claude Code, and enable GitHub Actions in the fork. -3. Create a branch such as `intent/first-draft`. Read the brief and ask Claude to +2. Clone your fork and enable GitHub Actions in it. Your facilitator enrolls you in + the lab, approves your exact fork, and confirms the GitHub App connection. +3. Download the compatible TensorLearn client (v0.5.1 or later) from the lab page + and extract it outside your fork. Follow the page's `--code` connection command + from your fork folder. Paste your learner token only into the hidden terminal + prompt. After the facilitator launches the round, use `/load` in Claude Code. +4. Create a branch such as `intent/first-draft`. Read the brief and ask Claude to help you write `intent.md`. Change only that file. Review the document yourself. -4. Start a fresh Claude session. Ask it to explain the scope and acceptance criteria - it loaded before doing any implementation. Refine your document as needed. -5. Commit and push your branch. Open a PR **inside your own fork**, targeting its +5. Start a fresh Claude session if needed and ask it to explain the loaded scope + and acceptance criteria before doing any implementation. Refine your document. +6. Commit and push your branch. Open a PR **inside your own fork**, targeting its `main` branch. GitHub may suggest the upstream repository: select your fork instead. -6. Review and merge your PR. **The merge is your submission for this exercise.** -7. Open the Actions run for the merged commit. Download `intent-score` and inspect - `score.json`. Discuss the feedback with your facilitator and repeat with a new PR. + Opening or updating this PR starts the document checks automatically. +7. Keep the PR open. When ready, run **`/submit`** in the connected Claude Code session + to submit that exact pushed revision for the current round. The client can also + create the same-repository PR if it does not exist yet. **No merge is required.** +8. Use `/check` or refresh the lab page to read the saved result. The Actions run + and `intent-score/score.json` are useful feedback, but an Actions check alone + does not submit your work or prove that the server saved a score. + +A change to your answer requires a new commit, push, and explicit `/submit`. +Keep the PR open until your facilitator finishes reviewing the exercise. Your +facilitator controls the official attempt allowance; advisory CI runs do not count +as official submissions or cap GitHub compute. ## What is verified @@ -32,17 +46,16 @@ Claude imports are described in [the official memory documentation](https://code The separate [document checker](https://github.com/TensorOpsAI/tensorlearn-intent-grader) is pinned to an immutable commit in `.github/workflows/grade.yml`. No server secrets -belong in this starter or student forks. The workflow emits the platform's score.json -format; GitHub App delivery and admission of the submission must also be configured -on the platform before a score can appear there. - -**Rehearsal blocker:** the currently observed platform requires a private repository -and explicit submission of an open PR. It does not currently accept this exercise's -public-fork merge as an official submission. The exercise can be prepared and its -checker tested, but the website score step remains unverified and blocked by that -mismatch. Do not treat an Actions score as proof that the server saved it. - -The exercise should remain unlaunched until the facilitator has resolved that setup -and checked one actual learner result end to end. See the checker repository's -rehearsal checklist. No customer identity, credentials, or participant data is stored -in these public repositories. +belong in this starter or student forks. The workflow grades the PR head commit, +not GitHub's synthetic merge preview. Both PR branches must belong to the learner's +approved repository; do not open a PR against the upstream starter. + +Before launch, verify that the deployed platform accepts approved public repositories +and pull-request check results, the matching client is downloadable, and the learner +repository's GitHub App installation is approved. Configure the grading allowance. +Observe an actual saved learner score before claiming end-to-end readiness. A client +or server that only supports private repositories is incompatible with this public +fork exercise. See the checker repository's rehearsal checklist. + +No customer identity, credentials, or participant data is stored in these public +repositories. All product examples are fictional.