Repository navigation
A chain that reads the host's CI for its gates alone: no warning before a push, no workflow in the guide - #116
Merged
Merged
Conversation
…re a push, no workflow in the guide The chain had grown three holds on the CI of the host: `/surface-plan` read its triggers before the first push of a branch, warned and waited for an agreement; the guide gave a GitHub Actions workflow that ran the conformity check once the pull request was marked ready; and the hand back at conformity said that the ready mark "triggers your CI". The developer decided on 2026-10-08 that tooling a CI widens the chain and specifies too much of what each host does its own way, and that it is theirs to decide when a finished plan leaves the plans in progress (#49), which a check placed at the ready mark decided for them. The conformity check stays, and the documentation may say that a CI can call it. - `skills/surface-plan/SKILL.md`: the step before the first push is gone, with the answer it wrote in `interview.md` and the push a developer could decline. The templates of the exploration and of the interview lose their line on the triggers. The CI configuration is still read in step 1, for the commands that check the project and their order. - `skills/surface-execute/SKILL.md`: the line at conformity ends on "the developer marks the pull request ready when they want" and says nothing of a CI, which was false in a host that has none (recorded in #67). The chain still never marks ready: what the project runs then is the developer's to start. - `skills/surface-status/SKILL.md` no longer says that the script is the one the CI calls. - `docs/guide.md`: the conformity check is the developer's command before merging, with its exit codes. One paragraph says that a CI can call it and that it needs the full history; the workflow is gone. `README.md` says the same where it links the guide. - ADR 0037 records the decision, and `ARCHITECTURE.md` holds it as an invariant. - The end to end tests lose the toy with a CI, its two prepared states and the two scenarios of #115 that played the warning: 25 scenarios are left, 28 tests. Nothing of the script changes: `surface-status check --require conformant` answers as before, and `tests/ci` still holds it in a detached or shallow checkout. Left as it is: the `conformity` job of `ci.yml`, which runs `tests/ci` a second time. The ruleset of `main` requires its check, so the job goes once the ruleset no longer does.
…nd a scenario that holds the push in a host that has one An independent review of the change found what it had left behind. - Step 1 of `/surface-plan` still ended on "and what triggers the CI": the session was told to establish the triggers the decision says it does not read. The words are gone, and the test holds that neither the command nor its templates speak of a trigger, where it only looked at the section the warning stood in. - Nothing told the new behaviour from the old: the scenarios left make their first push in a toy with no CI, where the old command asked nothing either. One prepared state with a CI is kept, and its scenario turned around: at the end of the session that drafts the plan, with no reply in between, the plan is pushed and its draft opened. Played once: passed, 2.33 USD. - The guide said that the check "says so" when a shallow checkout hides the history. In a checkout that holds the branch alone it says that it cannot find the main branch, and nothing of the depth: the guide now says what the check needs and that it exits with 2. ADR 0037 says what `tests/ci` holds, a detached checkout answered and one too shallow refused, and no more. - ADR 0037 says what the change does to a plan in flight: an answer that declined a first push, kept in `interview.md`, is no longer read. - The checks that a text does not name the CI match the word, not its letters. - `CONTRIBUTING.md` and the README of the end to end tests said what the chain no longer does, or named a state that is gone. Left as it is: `/surface-execute` pushes nothing on a branch with no upstream, which the review also read. It is what it did before, and belongs with #114.
This was referenced Oct 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The chain had grown three holds on the CI of the host. Before the first push of a branch,
/surface-planread what triggers the CI, warned the developer and waited for their agreement. The guide gave a GitHub Actions workflow that ran the conformity check once the pull request was marked ready. And the hand back at conformity said that the ready mark "triggers your CI".The developer decided on 2026-10-08 that tooling a CI widens the chain and specifies too much of what each host does its own way, and that it is theirs to decide when a finished plan leaves the plans in progress (#49), which a check placed at the ready mark decided for them. The conformity check stays, and the documentation may say that a CI can call it.
What changes
/surface-planasks nothing before a push. The step that read the triggers is gone, with the answer it wrote ininterview.mdand the push a developer could decline. The templates of the exploration and of the interview lose their line on the triggers. The CI configuration is still read in step 1, as a manifest is, for the commands that check the project and their order./surface-statusno longer says that the script is the one the CI calls.ARCHITECTURE.mdholds it as an invariant: the next reader who wants a warning before a push, or a workflow in the guide, finds why there is none.Nothing of the script changes:
surface-status check --require conformantanswers as before, andtests/cistill holds it in a detached or shallow checkout.What it costs
In a host whose CI runs on every push, the first push of a plan starts a run nobody announced. That is a configuration of its CI, and the ADR says so.
Checked
exploration.mdnames the CI only where it looks for the gates ("There is no CI configuration"), and the "Git" section ofinterview.mdholds the branch and nothing on a push.exploration.mdholds no line on the CI, and itsinterview.mdnothing on a push./surface-executeto conformity on the line that lost its last words, which the prompt tests hold./surface-planstill ended on "and what triggers the CI". It is gone, and the test now holds that neither the command nor its templates speak of a trigger. The second commit also takes from that review the scenario above, since nothing told the new behaviour from the old, a guide that promised a message the check does not give in a checkout that holds the branch alone, and two documents that still said what the chain no longer does.Left as it is
interview.mdis no longer read, and the next launch that finishes its draft pushes it. The ADR says so. No such plan is known./surface-executepushes nothing on a branch with no upstream, which the review also read: it is what it did before, and belongs with A session that dies between the commit of a conformant plan and its push leaves the push to nobody #114.conformityjob ofci.yml, which runstests/cia second time, on a runner: the gates already run them. The ruleset ofmainrequires its check, "conformity check in a CI checkout", so the job can go only once the ruleset no longer names it, which is a setting of the repository and the developer's to change.fetch-depth: 0: it is the script's, and the hint is right where it is read.docs/e2e/2026-10-07.mdkeeps the verdicts of the two scenarios that are gone: it is the record of that day.Of #8, this takes away the workflow of the guide to run by hand on GitHub and the pin of the action it named. What it still holds is the pull request steps, which have run against the stand-in
ghand never against GitHub itself.