Repository navigation
Cornerstone 1.0.0
Cornerstone 1.0.0
Cornerstone is a tool-neutral framework for agent-assisted delivery, with the stone CLI. Version 1.0.0 supports all 10 profiles. stone render writes every component that a profile lists, and each profile has a golden-file test.
What blocks in version 1
| Check | What it tests |
|---|---|
| K6 | An implementer commit must not change a protected path. |
| K7 | A PR must stay under the size limit, or carry a Waiver (P10) heading with text (D46). |
| K14 | A PR body needs Evidence, Decision log, Review findings, and Confidence (D47, D49). |
| K15 | The instruction file must stay under the line limit (D52). |
| K16 | A spike/ branch must not merge into the main or integration branch (D30, D33). |
| K17 | Changed text must follow the writing standard (D45). |
| K18, K19 | Personas, job stories, and specs must be valid (D53). |
| By-profile steps | A failing repo command fails the job (D52). |
Each component in the manifest has an eval plan, a review date, an owner, and the models of its results (D43, D50). stone check tests this. Install with the tag: framework_version: 1.0.0.
Known limits
This release is honest about what is not proven. Each limit has an issue.
| Limit | Issue |
|---|---|
| Eval coverage is low: 3 of 22 components have an eval folder. The roles for the shaper, implementer, reviewer, and investigator have no eval. | #110 |
| K18 and K19 became errors on thin evidence (fixtures and unit tests; no personas file in this repo). | #111 |
| K7, K14, K15, K17, and the repo-command steps blocked early, under the replay rule of D45. | #112 |
| The protected-path hook does not see a shell write. K6 in CI is the control. | #113 |
K6 trusts the Role: trailer that the committer writes. |
#81 |
This repo's own G3 still installs stone from the tag v0.5.0. |
#114 |
| No deterministic Definition of Ready check (P3). | #115 |
| Stated rules that could be checks have none (P6). | #116 |
| The core names tools in two places (P12). | #117 |
| Decision logs live in PR bodies only (P8). | #118 |
| Profile overrides and waivers are not built. | #78 |
Bug-triage does not apply labels, and its outputs and purpose line still promise it. |
#79 |
| The first blind A/B rating of the writing standard is not done. | #67 |
The hook.protect-paths eval measures the hook and K6 with a task text that lifts the role rule (D48). It does not measure how often a model writes to a protected path on its own. |
#113 |
The full audit is in docs/reports/v1-principles-audit.md. Evals and results are on the Evals page of the docs site.
What's Changed
- docs(readme): link the docs site by @brawblan in #20
- feat(stone): add specs and stone spec apply by @brawblan in #21
- feat(stone): add check K19, stone spec sync, and the specs in the roles by @brawblan in #22
- feat(stone): run K14 in the G3 workflow that render writes by @brawblan in #23
- feat(stone): render the roles of all 10 profiles, with the investigator by @brawblan in #24
- feat(stone): add stone eval, the component eval runner by @brawblan in #25
- feat(stone): render K7 (change size) into the G3 workflow by @brawblan in #26
- feat(workflow): write a Profile line in skill-made PR bodies by @brawblan in #28
- feat(stone): render K15 (instruction size) for full-project, with a golden test by @brawblan in #27
- test(stone): golden-file tests for debugging, dependency-upgrade, adapter-refresh (6f) by @brawblan in #31
- feat(stone): render label and schedule trigger workflows (6g part 1, D31) by @brawblan in #29
- feat(stone): render the ci: trigger workflows (6g part 2, D31) by @brawblan in #34
- feat(stone): render the G3 steps for K10, K12, and the other by-profile checks (6d, D29) by @brawblan in #30
- fix(framework): debugging investigator writes the findings report by @brawblan in #32
- feat(stone): render K16 for spike, and golden tests for the report profiles (6e, D30) by @brawblan in #33
- fix(framework): limit the trigger role reads to the checkout and the event folder (D32) by @brawblan in #36
- feat(evals): add the role.tester eval and its first result by @brawblan in #35
- docs(guides): move the working parts to Today for v1 (6h) by @brawblan in #37
- fix(framework): make K16 block a spike PR into the integration branch by @brawblan in #52
- test(stone): add golden-file tests for single-ticket and app-slice by @brawblan in #51
- fix(stone): fail render and check on a branches.* value that is not a string by @brawblan in #56
- feat(evals): add the role.planner eval and its first result by @brawblan in #57
- feat(website): add an Evals page that shows the eval results by @brawblan in #58
- fix(adapters): planner template fixes from the role.planner eval by @brawblan in #59
- feat(evals): grade the open question form of planner step 7 in P3 by @brawblan in #60
- chore(adapters): set the first model profile to active by @brawblan in #61
- fix(adapters): limit the cost of a trigger run and frame the posted report by @brawblan in #71
- fix(framework): record the shell-write gap of the protected-path hook (D39) by @brawblan in #74
- docs(guides): add the investigator to run-the-roles by @brawblan in #68
- docs(guides): add the bug-triage guide by @brawblan in #69
- docs(guides): add the code-audit guide by @brawblan in #70
- docs(guides): add the spike guide by @brawblan in #72
- docs(guides): add the dependency-upgrade guide by @brawblan in #73
- docs(guides): add the adapter-refresh guide by @brawblan in #75
- docs(guides): add the refactor-migration guide by @brawblan in #76
- test(evals): add the grader tests of the hook.protect-paths eval by @brawblan in #82
- fix(adapter): say the hook guards the file tools only (D39) by @brawblan in #83
- docs(framework): describe Cornerstone and its prior art by @brawblan in #84
- fix(stone): make the label prompt report and drop relative links (D41) by @brawblan in #86
- fix(framework): tester commits the failing test on a ticket/code disagreement (D42) by @brawblan in #87
- chore(framework): check that each component has an eval plan and a review date (D43) by @brawblan in #88
- test(stone): pin the D43 component rule and the shared label render by @brawblan in #89
- fix(evals): remove the hook settings entry in the without variant by @brawblan in #91
- docs(reports): audit the repo against principles P1 to P12 before v1 by @brawblan in #90
- fix(stone): make K7 accept a waiver in any heading with "waiver (P10)" by @brawblan in #99
- feat(framework): block K17 and K7 after a replay shows no false positive by @brawblan in #92
- docs(framework): align the PR body sections with check K14 by @brawblan in #100
- fix(evals): lift the role rule in the task text of the hook eval (D48) by @brawblan in #101
- feat(framework): block K14 in the G3 template (D49) by @brawblan in #102
- docs(framework): make the docs match the code for K6, K8 rules, overrides, and labels by @brawblan in #103
- feat(stone): add owner and tested models to the manifest check (P5) by @brawblan in #104
- feat(stone): change K18 and K19 from a warning to an error by @brawblan in #105
- feat(framework): block K15 and remove continue-on-error from the step templates (D52) by @brawblan in #106
- docs(guides): remove the K18 and K19 warning text by @brawblan in #107
- docs(guides): say that K7, K14, K15, and the by-profile steps block by @brawblan in #108
- chore(release): prepare version 1.0.0 by @brawblan in #109
Full Changelog: v0.5.0...v1.0.0