diff --git a/Cargo.lock b/Cargo.lock index c6dc101..9eee62a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -677,7 +677,7 @@ dependencies = [ [[package]] name = "socketry-project" -version = "0.3.9" +version = "0.3.10" dependencies = [ "bake", "bake-agent-context", diff --git a/Cargo.toml b/Cargo.toml index 370f1dc..4a5da07 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "socketry-project" -version = "0.3.9" +version = "0.3.10" edition = "2024" license = "MIT" repository = "https://github.com/socketry/socketry-project-rust" diff --git a/bake/Cargo.toml b/bake/Cargo.toml index 38551d1..f4da9dd 100644 --- a/bake/Cargo.toml +++ b/bake/Cargo.toml @@ -7,4 +7,4 @@ publish = false [dependencies] bake = "0.19.0" bake-markdown = "0.3.0" -socketry-project = { path = "..", version = "0.3.9" } +socketry-project = { path = "..", version = "0.3.10" } diff --git a/context/conventions.md b/context/conventions.md index 921e346..d30447c 100644 --- a/context/conventions.md +++ b/context/conventions.md @@ -44,4 +44,5 @@ Before introducing a new semantic, layout, or naming pattern, check how related - Keep development tasks in a private `bake/` package. Depend on `socketry-project` there so task tooling does not become a runtime dependency of the published library. - Use the `cargo:after_version_bump` hook registered by `socketry-project` to update `license.md`, `releases.md`, and the generated sections of `readme.md`, then normalize those files and all Markdown under the public `context/` directory. +- Follow the [socketry-project-pull-requests skill](https://github.com/socketry/socketry-project-rust/blob/main/context/pull-requests.md), including independent adversarial review and local iteration until all non-trivial issues are resolved. - Follow the `socketry-project-releasing` skill to prepare and publish a release. It links to Bake Cargo task documentation for workflow setup, trusted publishing, reviewers, and tag creation. diff --git a/context/pull-requests.md b/context/pull-requests.md index 9622d90..d8d0650 100644 --- a/context/pull-requests.md +++ b/context/pull-requests.md @@ -7,6 +7,17 @@ description: Prepare commits and GitHub pull requests for Socketry Rust projects Use these conventions when preparing commits or pull requests for Socketry Rust projects. +## Adversarial review + +When sub-agents are available, use a sub-agent that did not implement the change for an independent adversarial review before opening the pull request. Keep the reviewer focused on inspecting the changes and reporting findings. + +- Give the reviewer the user's intent, relevant repository guidance, the diff, and the exact commit to review. +- Ask it to challenge assumptions and identify concrete correctness, compatibility, testing, and documentation gaps. Findings should explain the affected behavior and supporting evidence. +- Evaluate each finding against the intended behavior. Fix substantive issues and run the relevant checks; explain with evidence when a concern does not apply. +- Iterate locally through review and fixes until all non-trivial issues are resolved. Have the reviewer confirm the final commit before opening the pull request. If the changes are revised later, re-review the affected changes before merging. + +Scale the review to the change's complexity and risk. A small documentation change needs a focused check of clarity and factual accuracy; changes to public APIs or runtime behavior need deeper scrutiny of semantics and regressions. Complete the required tests and configured GitHub approvals alongside the adversarial review. + ## Titles and commits - Pull request titles must use Markdown, be complete sentences, and end with a full stop. diff --git a/context/releasing.md b/context/releasing.md index a6ddec3..7508486 100644 --- a/context/releasing.md +++ b/context/releasing.md @@ -22,7 +22,7 @@ cargo bake cargo:version:bump --version X.Y.Z Choose one version task. The `socketry-project` hook updates `license.md`, `releases.md`, and generated sections of `readme.md`, then normalizes those files and all Markdown under the public `context/` directory. Review the generated changes and ensure the release notes describe the actual changes. -Run the project's required tests and coverage checks using the `socketry-project-testing` skill. Commit the version and release files, then run `cargo bake cargo:release` from the clean worktree. This validates and packages the release candidate; it does not publish or tag it. Open a reviewed pull request after the task succeeds. +Run the project's required tests and coverage checks using the `socketry-project-testing` skill. Commit the version and release files, then run `cargo bake cargo:release` from the clean worktree. This validates and packages the release candidate; it does not publish or tag it. Follow the [adversarial review process in the socketry-project-pull-requests skill](https://github.com/socketry/socketry-project-rust/blob/main/context/pull-requests.md#adversarial-review), iterating locally until all non-trivial issues are resolved, then open the pull request after validation and review succeed. ## Publish through GitHub Actions diff --git a/readme.md b/readme.md index e658623..6571f06 100644 --- a/readme.md +++ b/readme.md @@ -39,6 +39,11 @@ Prepare a release with `cargo bake cargo:version:patch` (or `minor`, `major`, or See [releases.md](releases.md) for the full release history. +### v0.3.10 + +- Add independent adversarial review guidance, with local iteration until all non-trivial issues are resolved before opening a pull request. +- Clarify that the private Bake package shares the workspace's root lockfile. + ### v0.3.9 - Follow Rust acronym casing in type and trait names, using `HtmlRenderer`, `HttpClient`, `UrlParser`, and `FileIo`. @@ -48,11 +53,6 @@ See [releases.md](releases.md) for the full release history. - Let Cargo select setup dependency versions while retaining open-ended minimum requirements. - Require current agent-context and readme providers so installed guidance preserves repository instructions and shared conventions. -### v0.3.7 - -- Require a stable aggregate test and coverage result alongside publishing checks. -- Clarify merge gates and repository-owned agent guidance in the shared conventions. - ## See Also diff --git a/releases.md b/releases.md index 7f7fd5a..75e9604 100644 --- a/releases.md +++ b/releases.md @@ -1,7 +1,8 @@ # Releases -## Unreleased +## v0.3.10 +- Add independent adversarial review guidance, with local iteration until all non-trivial issues are resolved before opening a pull request. - Clarify that the private Bake package shares the workspace's root lockfile. ## v0.3.9