From ff6d03f86291af1a13e5805aee69ebf0dac69116 Mon Sep 17 00:00:00 2001 From: ashfame Date: Tue, 28 Jul 2026 09:59:38 +0400 Subject: [PATCH 1/3] Document stale branch deletion evidence --- plan.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/plan.md b/plan.md index 660ecd8a..0ac16513 100644 --- a/plan.md +++ b/plan.md @@ -515,10 +515,41 @@ Status: validated and merged into the integration branch by child pull request [ ### Child Execution Record: [#216](https://github.com/WordPress/try-wordpress/pull/216) -Status: implemented and validated locally in child pull request [#216](https://github.com/WordPress/try-wordpress/pull/216), which targets the integration branch. +Status: validated and merged into the integration branch by child pull request [#216](https://github.com/WordPress/try-wordpress/pull/216) at merge commit `f8473294df0b45bc0afa10e580f238068063c24d`. - Composer metadata: the root description now accurately identifies Try WordPress as a browser extension for importing an existing website into WordPress. The existing empty Composer license value is byte-semantically unchanged, and no other Composer declaration or lock entry changes. - npm metadata: the private root package now declares repository-grounded name `try-wordpress`, plugin-header version `0.0.1`, and `private: true`; the existing Node engine range `>=24 <25`, scripts, and dependency declarations remain unchanged. npm 11 synchronizes the same name and version into the package-lock top level and root package, while exact semantic comparison after excluding only those identity fields proves every inherited lock entry unchanged. - Backup ignores: `.gitignore` adds exactly `/backup.sql` and `/backup-*.sql`, matching the two root files emitted by `composer run dev:db` and `composer run dev:db:backup`; nested backup SQL files and unrelated SQL files remain trackable. - Scope: `LICENSE`, plugin and extension metadata, license metadata, dependencies, resolved versions, integrity values, scripts, application source, and CI workflows are unchanged. - Validation: Node `v24.18.0` with npm `11.16.0` parses both npm JSON files and reproduces the inherited audit result of 111 effects (9 low, 15 moderate, 87 high, and zero critical) across 60 unique GHSAs. Exact lock, metadata, engine, script, dependency, license, and ignore-behavior assertions pass. The official Composer 2 container validates `composer.json` and reports only the inherited warnings for the intentionally unchanged empty license field; `composer audit --locked --no-interaction` reports no advisory. The approved-plan-prefix SHA-256 remains `6c29481eab5ef6c57aec974295193492861bc7efeba1bd612e45c94d10b1bfaa`, the baseline table remains exactly 124 rows, and `git diff --check` passes. + +### Child Execution Record: `agent/maintenance-018-stale-branch-triage` (PR pending) + +Status: read-only pre-action evidence captured locally on 2026-07-28; child pull request placeholder is pending. External branch deletion is pending and has not been performed. + +- Approved criterion: a live remote branch is eligible for deletion only when it has an associated pull request in any state or its exact tip is reachable from `origin/trunk`; an unmerged branch without an associated pull request must be preserved. +- Reachability anchor: local `origin/trunk` is exactly `98f7c74d195d0b1ee95e4f9c16c7a9b527149980`, matching the approved pre-action anchor. +- Live-source scope: the paginated GitHub branches API contains thirteen of the fourteen original stale branches and omits `crawler`; the complete all-state pull-request response supplies every same-repository head association shown below. + +| Branch | Live API state | Exact pre-action tip or recovery SHA | Last commit date | Reachable from `origin/trunk` | All associated head PRs / state | Criterion result | Recovery reference | +| --- | --- | --- | --- | --- | --- | --- | --- | +| `add-navigation` | Present | `55fbcd77ed9f6bcd3bf9528c9898816b02be29ba` | `2024-11-07T17:04:03+01:00` | No | [#98](https://github.com/WordPress/try-wordpress/pull/98), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #98. | +| `api-docs` | Present | `d6af87dd5891f64539d5dfde819fa2d563095caf` | `2024-10-25T15:34:17+01:00` | No | [#86](https://github.com/WordPress/try-wordpress/pull/86), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #86. | +| `attempt-twitter` | Present | `09ea6328c0a7553328b1dddf78a2b35958e2fa15` | `2024-08-01T13:25:16+02:00` | No | None found | Preserve because the tip is unmerged and no associated PR exists. | Live remote branch and tip SHA. | +| `crawler` | Absent before child 018 | `ba0be4d3c71b5dfeeff71b9e5d81789cdc0ab27a` | `2024-12-02T12:50:08+04:00` | No | [#131](https://github.com/WordPress/try-wordpress/pull/131), closed (unmerged) | No-op because the remote branch was already absent; this child did not delete it. | Recovery commit SHA, PR #131, and the original baseline inventory. | +| `devex` | Present | `1f10e37b8b698965abdb3a2c2d7db9d40defa003` | `2024-11-19T16:21:02+04:00` | No | [#123](https://github.com/WordPress/try-wordpress/pull/123), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #123. | +| `docs/extend` | Present | `361343c169e69bca2357bb4a25d9225f9a774109` | `2024-12-04T18:28:39+04:00` | No | [#125](https://github.com/WordPress/try-wordpress/pull/125), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #125. | +| `docs-definitions` | Present | `343cbb6e8ab61ed5b6a910ca87b50a1af89e41ed` | `2024-11-22T15:24:36+01:00` | No | [#124](https://github.com/WordPress/try-wordpress/pull/124), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #124. | +| `feedback_auto_preview_filter` | Present | `0d3ca5c76aec03956f561161376631f334ddbedc` | `2024-11-26T01:10:02+04:00` | No | [#128](https://github.com/WordPress/try-wordpress/pull/128), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #128. | +| `feedback_simulate_liberation` | Present | `1899e033db7ecf42aeb005aec3dd0c00ca89e55d` | `2024-11-25T19:37:15+04:00` | No | [#126](https://github.com/WordPress/try-wordpress/pull/126), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #126. | +| `fix-test-wix` | Present | `960f2d793bdf975e39c31304a296c168c0301aff` | `2024-11-12T15:09:21+01:00` | No | None found | Preserve because the tip is unmerged and no associated PR exists. | Live remote branch and tip SHA. | +| `local-playground-client` | Present | `2a34ea44ea3ae8d8abb0c9365a866cbdc65338b5` | `2024-07-24T10:41:15+02:00` | Yes | None found | Eligible because the exact tip is reachable from `origin/trunk`; external deletion pending. | Tip SHA and `origin/trunk`, which contains it. | +| `npm_package_updates` | Present | `c9070d9d1bdd66ccf7a374d463b45c99e14e7683` | `2024-09-11T21:19:31+04:00` | No | None found | Preserve because the tip is unmerged and no associated PR exists. | Live remote branch and tip SHA. | +| `pages` | Present | `b1ed8fa5872402690a3a7286742337526d42dd10` | `2024-11-07T15:54:07+01:00` | No | [#96](https://github.com/WordPress/try-wordpress/pull/96), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #96. | +| `schemas` | Present | `85e269198e8f0d2c9d6039af89e1cd5d0188003d` | `2024-12-03T15:19:15+00:00` | No | [#132](https://github.com/WordPress/try-wordpress/pull/132), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #132. | + +- Authoritative pending deletion set: `add-navigation`, `api-docs`, `devex`, `docs/extend`, `docs-definitions`, `feedback_auto_preview_filter`, `feedback_simulate_liberation`, `local-playground-client`, `pages`, and `schemas`. +- Authoritative preserve set: `attempt-twitter`, `fix-test-wix`, and `npm_package_updates`. +- Authoritative no-op set: `crawler`, which remains absent and retains the documented recovery references. +- Mutation result: no remote branch, pull request, issue, alert, or other GitHub state was changed while gathering or recording this evidence. +- Validation: live API tips match the corresponding local `origin/*` refs for all thirteen present branches; GitHub commit dates represent the same instants as the timezone-preserving Git commit dates above; all fourteen reachability results were checked against the exact trunk anchor; the approved-plan-prefix SHA-256, 124-row baseline-alert count, Markdown table structure, and `git diff --check` pass. From 14cc20db701517d7a201cd7d8153c591d4111f32 Mon Sep 17 00:00:00 2001 From: ashfame Date: Tue, 28 Jul 2026 09:59:57 +0400 Subject: [PATCH 2/3] Link branch triage child PR --- plan.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plan.md b/plan.md index 0ac16513..471d22ec 100644 --- a/plan.md +++ b/plan.md @@ -523,9 +523,9 @@ Status: validated and merged into the integration branch by child pull request [ - Scope: `LICENSE`, plugin and extension metadata, license metadata, dependencies, resolved versions, integrity values, scripts, application source, and CI workflows are unchanged. - Validation: Node `v24.18.0` with npm `11.16.0` parses both npm JSON files and reproduces the inherited audit result of 111 effects (9 low, 15 moderate, 87 high, and zero critical) across 60 unique GHSAs. Exact lock, metadata, engine, script, dependency, license, and ignore-behavior assertions pass. The official Composer 2 container validates `composer.json` and reports only the inherited warnings for the intentionally unchanged empty license field; `composer audit --locked --no-interaction` reports no advisory. The approved-plan-prefix SHA-256 remains `6c29481eab5ef6c57aec974295193492861bc7efeba1bd612e45c94d10b1bfaa`, the baseline table remains exactly 124 rows, and `git diff --check` passes. -### Child Execution Record: `agent/maintenance-018-stale-branch-triage` (PR pending) +### Child Execution Record: [#217](https://github.com/WordPress/try-wordpress/pull/217) -Status: read-only pre-action evidence captured locally on 2026-07-28; child pull request placeholder is pending. External branch deletion is pending and has not been performed. +Status: read-only pre-action evidence captured in child pull request [#217](https://github.com/WordPress/try-wordpress/pull/217), which targets the integration branch. External branch deletion is pending and has not been performed. - Approved criterion: a live remote branch is eligible for deletion only when it has an associated pull request in any state or its exact tip is reachable from `origin/trunk`; an unmerged branch without an associated pull request must be preserved. - Reachability anchor: local `origin/trunk` is exactly `98f7c74d195d0b1ee95e4f9c16c7a9b527149980`, matching the approved pre-action anchor. From 0cf0af5bccd09ddb337c7960a2f51948444d308d Mon Sep 17 00:00:00 2001 From: ashfame Date: Tue, 28 Jul 2026 10:06:22 +0400 Subject: [PATCH 3/3] Record completed stale branch cleanup --- plan.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/plan.md b/plan.md index 471d22ec..960f8553 100644 --- a/plan.md +++ b/plan.md @@ -525,7 +525,7 @@ Status: validated and merged into the integration branch by child pull request [ ### Child Execution Record: [#217](https://github.com/WordPress/try-wordpress/pull/217) -Status: read-only pre-action evidence captured in child pull request [#217](https://github.com/WordPress/try-wordpress/pull/217), which targets the integration branch. External branch deletion is pending and has not been performed. +Status: pre-action evidence was captured and linked in child pull request [#217](https://github.com/WordPress/try-wordpress/pull/217), which targets the integration branch, before the authorized external branch deletion completed. - Approved criterion: a live remote branch is eligible for deletion only when it has an associated pull request in any state or its exact tip is reachable from `origin/trunk`; an unmerged branch without an associated pull request must be preserved. - Reachability anchor: local `origin/trunk` is exactly `98f7c74d195d0b1ee95e4f9c16c7a9b527149980`, matching the approved pre-action anchor. @@ -533,23 +533,24 @@ Status: read-only pre-action evidence captured in child pull request [#217](http | Branch | Live API state | Exact pre-action tip or recovery SHA | Last commit date | Reachable from `origin/trunk` | All associated head PRs / state | Criterion result | Recovery reference | | --- | --- | --- | --- | --- | --- | --- | --- | -| `add-navigation` | Present | `55fbcd77ed9f6bcd3bf9528c9898816b02be29ba` | `2024-11-07T17:04:03+01:00` | No | [#98](https://github.com/WordPress/try-wordpress/pull/98), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #98. | -| `api-docs` | Present | `d6af87dd5891f64539d5dfde819fa2d563095caf` | `2024-10-25T15:34:17+01:00` | No | [#86](https://github.com/WordPress/try-wordpress/pull/86), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #86. | +| `add-navigation` | Present | `55fbcd77ed9f6bcd3bf9528c9898816b02be29ba` | `2024-11-07T17:04:03+01:00` | No | [#98](https://github.com/WordPress/try-wordpress/pull/98), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #98. | +| `api-docs` | Present | `d6af87dd5891f64539d5dfde819fa2d563095caf` | `2024-10-25T15:34:17+01:00` | No | [#86](https://github.com/WordPress/try-wordpress/pull/86), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #86. | | `attempt-twitter` | Present | `09ea6328c0a7553328b1dddf78a2b35958e2fa15` | `2024-08-01T13:25:16+02:00` | No | None found | Preserve because the tip is unmerged and no associated PR exists. | Live remote branch and tip SHA. | | `crawler` | Absent before child 018 | `ba0be4d3c71b5dfeeff71b9e5d81789cdc0ab27a` | `2024-12-02T12:50:08+04:00` | No | [#131](https://github.com/WordPress/try-wordpress/pull/131), closed (unmerged) | No-op because the remote branch was already absent; this child did not delete it. | Recovery commit SHA, PR #131, and the original baseline inventory. | -| `devex` | Present | `1f10e37b8b698965abdb3a2c2d7db9d40defa003` | `2024-11-19T16:21:02+04:00` | No | [#123](https://github.com/WordPress/try-wordpress/pull/123), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #123. | -| `docs/extend` | Present | `361343c169e69bca2357bb4a25d9225f9a774109` | `2024-12-04T18:28:39+04:00` | No | [#125](https://github.com/WordPress/try-wordpress/pull/125), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #125. | -| `docs-definitions` | Present | `343cbb6e8ab61ed5b6a910ca87b50a1af89e41ed` | `2024-11-22T15:24:36+01:00` | No | [#124](https://github.com/WordPress/try-wordpress/pull/124), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #124. | -| `feedback_auto_preview_filter` | Present | `0d3ca5c76aec03956f561161376631f334ddbedc` | `2024-11-26T01:10:02+04:00` | No | [#128](https://github.com/WordPress/try-wordpress/pull/128), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #128. | -| `feedback_simulate_liberation` | Present | `1899e033db7ecf42aeb005aec3dd0c00ca89e55d` | `2024-11-25T19:37:15+04:00` | No | [#126](https://github.com/WordPress/try-wordpress/pull/126), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #126. | +| `devex` | Present | `1f10e37b8b698965abdb3a2c2d7db9d40defa003` | `2024-11-19T16:21:02+04:00` | No | [#123](https://github.com/WordPress/try-wordpress/pull/123), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #123. | +| `docs/extend` | Present | `361343c169e69bca2357bb4a25d9225f9a774109` | `2024-12-04T18:28:39+04:00` | No | [#125](https://github.com/WordPress/try-wordpress/pull/125), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #125. | +| `docs-definitions` | Present | `343cbb6e8ab61ed5b6a910ca87b50a1af89e41ed` | `2024-11-22T15:24:36+01:00` | No | [#124](https://github.com/WordPress/try-wordpress/pull/124), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #124. | +| `feedback_auto_preview_filter` | Present | `0d3ca5c76aec03956f561161376631f334ddbedc` | `2024-11-26T01:10:02+04:00` | No | [#128](https://github.com/WordPress/try-wordpress/pull/128), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #128. | +| `feedback_simulate_liberation` | Present | `1899e033db7ecf42aeb005aec3dd0c00ca89e55d` | `2024-11-25T19:37:15+04:00` | No | [#126](https://github.com/WordPress/try-wordpress/pull/126), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #126. | | `fix-test-wix` | Present | `960f2d793bdf975e39c31304a296c168c0301aff` | `2024-11-12T15:09:21+01:00` | No | None found | Preserve because the tip is unmerged and no associated PR exists. | Live remote branch and tip SHA. | -| `local-playground-client` | Present | `2a34ea44ea3ae8d8abb0c9365a866cbdc65338b5` | `2024-07-24T10:41:15+02:00` | Yes | None found | Eligible because the exact tip is reachable from `origin/trunk`; external deletion pending. | Tip SHA and `origin/trunk`, which contains it. | +| `local-playground-client` | Present | `2a34ea44ea3ae8d8abb0c9365a866cbdc65338b5` | `2024-07-24T10:41:15+02:00` | Yes | None found | Deleted externally after PR #217 opened; eligibility was exact tip reachability from `origin/trunk`. | Tip SHA and `origin/trunk`, which contains it. | | `npm_package_updates` | Present | `c9070d9d1bdd66ccf7a374d463b45c99e14e7683` | `2024-09-11T21:19:31+04:00` | No | None found | Preserve because the tip is unmerged and no associated PR exists. | Live remote branch and tip SHA. | -| `pages` | Present | `b1ed8fa5872402690a3a7286742337526d42dd10` | `2024-11-07T15:54:07+01:00` | No | [#96](https://github.com/WordPress/try-wordpress/pull/96), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #96. | -| `schemas` | Present | `85e269198e8f0d2c9d6039af89e1cd5d0188003d` | `2024-12-03T15:19:15+00:00` | No | [#132](https://github.com/WordPress/try-wordpress/pull/132), closed (unmerged) | Eligible because an associated PR exists; external deletion pending. | Tip SHA and PR #132. | +| `pages` | Present | `b1ed8fa5872402690a3a7286742337526d42dd10` | `2024-11-07T15:54:07+01:00` | No | [#96](https://github.com/WordPress/try-wordpress/pull/96), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #96. | +| `schemas` | Present | `85e269198e8f0d2c9d6039af89e1cd5d0188003d` | `2024-12-03T15:19:15+00:00` | No | [#132](https://github.com/WordPress/try-wordpress/pull/132), closed (unmerged) | Deleted externally after PR #217 opened; eligibility was the associated PR. | Tip SHA and PR #132. | -- Authoritative pending deletion set: `add-navigation`, `api-docs`, `devex`, `docs/extend`, `docs-definitions`, `feedback_auto_preview_filter`, `feedback_simulate_liberation`, `local-playground-client`, `pages`, and `schemas`. +- Authoritative completed external deletion set: `add-navigation`, `api-docs`, `devex`, `docs/extend`, `docs-definitions`, `feedback_auto_preview_filter`, `feedback_simulate_liberation`, `local-playground-client`, `pages`, and `schemas`. - Authoritative preserve set: `attempt-twitter`, `fix-test-wix`, and `npm_package_updates`. - Authoritative no-op set: `crawler`, which remains absent and retains the documented recovery references. -- Mutation result: no remote branch, pull request, issue, alert, or other GitHub state was changed while gathering or recording this evidence. -- Validation: live API tips match the corresponding local `origin/*` refs for all thirteen present branches; GitHub commit dates represent the same instants as the timezone-preserving Git commit dates above; all fourteen reachability results were checked against the exact trunk anchor; the approved-plan-prefix SHA-256, 124-row baseline-alert count, Markdown table structure, and `git diff --check` pass. +- External deletion result: after PR #217 opened and the pre-action evidence was immediately reverified, the main maintenance workflow deleted exactly the ten authorized remote branches and no others. Remote-head deletion is external to source history; every removed branch remains recoverable from its exact pre-action SHA and associated PR or reachable trunk reference listed above. +- Post-action verification: both `git ls-remote --heads origin` and the paginated live branches API show all ten completed deletions absent, `crawler` still absent, and the preserved heads unchanged at `attempt-twitter` `09ea6328c0a7553328b1dddf78a2b35958e2fa15`, `fix-test-wix` `960f2d793bdf975e39c31304a296c168c0301aff`, and `npm_package_updates` `c9070d9d1bdd66ccf7a374d463b45c99e14e7683`. The active `trunk`, `agent/maintenance-security-and-hygiene`, and `agent/maintenance-018-stale-branch-triage` heads also remain present. +- Validation: the live remote and API branch sets are identical at six exact heads; the approved-plan-prefix SHA-256, 124-row baseline-alert count, Markdown table structure, and `git diff --check` pass. This documentation update performs no additional GitHub mutation.