From dcdeb4716d6c80f8b53b42c0874a1f82e41155c3 Mon Sep 17 00:00:00 2001 From: "ip-adopt-standard[bot]" <290475042+ip-adopt-standard[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 07:30:32 +0000 Subject: [PATCH 1/6] feat(governance): adopt devops-excellence standard (.github/workflows/auto-merge.yml) --- .github/workflows/auto-merge.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/auto-merge.yml diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 0000000..7136779 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,29 @@ +# Auto-merge caller for Tier 3 plugin repos, which call the PUBLIC +# reusable-workflows host. This is deliberately NOT identical to the Tier 1/2 +# templates: those call the PRIVATE devops-excellence reusable and forward the +# whole-vault OP_SERVICE_ACCOUNT_TOKEN, whereas the public reusable declares +# only the SCOPED OP_AUTOMERGE_PUBLIC_TOKEN (read-only on the ip-automation-public +# vault, per ADR-045 / ip-bots#207). GitHub also blocks a public repo from +# calling a private reusable workflow, which is why Tier 3 uses the public host. +# Passing OP_SERVICE_ACCOUNT_TOKEN here is an UNDECLARED secret and fails the run +# at compile time (startup_failure — "workflow file issue"). +# +# The tier3-claude-plugin and tier3-omnifocus-plugin copies of this file are +# byte-identical by design (the fitness spec sources one governance set for both). + +name: Auto-Merge + +on: + pull_request: + types: [opened, synchronize, reopened] + +permissions: + contents: write + pull-requests: write + +jobs: + auto-merge: + name: Auto-Merge + uses: Integral-Productivity/reusable-workflows/.github/workflows/reusable-auto-merge.yml@v1 + secrets: + OP_AUTOMERGE_PUBLIC_TOKEN: ${{ secrets.OP_AUTOMERGE_PUBLIC_TOKEN }} From d23c05b97c1d4c78bb44a6e4fbabf7b3cea9343f Mon Sep 17 00:00:00 2001 From: "ip-adopt-standard[bot]" <290475042+ip-adopt-standard[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 07:30:34 +0000 Subject: [PATCH 2/6] feat(governance): adopt devops-excellence standard (.github/workflows/claude.yml) --- .github/workflows/claude.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/claude.yml diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml new file mode 100644 index 0000000..418c38d --- /dev/null +++ b/.github/workflows/claude.yml @@ -0,0 +1,36 @@ +# Standard @claude on-demand bot caller. See tier1/.github/workflows/claude.yml +# for the rationale on the `if:` gate — it is required, do not remove it. + +name: Claude Code + +# REQUIRED — mirrors reusable-claude.yml's permissions. A workflow_call reusable +# can only USE permissions the caller GRANTS; without this block the validator +# rejects the call at startup (0-second startup_failure on every trigger). See +# tier1/.github/workflows/claude.yml for the full rationale. +permissions: + contents: write + pull-requests: write + issues: write + id-token: write + actions: read + +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + issues: + types: [opened, assigned] + pull_request_review: + types: [submitted] + +jobs: + claude: + if: | + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || + (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) + uses: Integral-Productivity/reusable-workflows/.github/workflows/reusable-claude.yml@v1 + secrets: + CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} From d29c081a9fef818289b9b55f6967bbd925497c18 Mon Sep 17 00:00:00 2001 From: "ip-adopt-standard[bot]" <290475042+ip-adopt-standard[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 07:30:35 +0000 Subject: [PATCH 3/6] feat(governance): adopt devops-excellence standard (.github/CODEOWNERS) --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..b4d0de8 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# Default code-owner. Tier 3 standard from devops-excellence (ADR-001). +* @kraigparkinson From e16c1f14f41eefbe93703defa9350a2237ba1de0 Mon Sep 17 00:00:00 2001 From: "ip-adopt-standard[bot]" <290475042+ip-adopt-standard[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 07:30:36 +0000 Subject: [PATCH 4/6] feat(governance): adopt devops-excellence standard (.github/PULL_REQUEST_TEMPLATE.md) --- .github/PULL_REQUEST_TEMPLATE.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..2f0a901 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ +Closes # + +## Summary + +- +- + +## Test plan + +- [ ] +- [ ] + + From ef1acb9e48a763eb1300edc427aa1939cd1d24da Mon Sep 17 00:00:00 2001 From: "ip-adopt-standard[bot]" <290475042+ip-adopt-standard[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 07:30:37 +0000 Subject: [PATCH 5/6] feat(governance): adopt devops-excellence standard (.github/dependabot.yml) --- .github/dependabot.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9af9e65 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,17 @@ +version: 2 + +updates: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: weekly + day: monday + time: "08:00" + timezone: America/Los_Angeles + open-pull-requests-limit: 10 + labels: + - dependencies + - github-actions + commit-message: + prefix: chore(deps) + include: scope From dfb947cd2a7a7c4b9980a3801ba162e02a5fa2e0 Mon Sep 17 00:00:00 2001 From: "ip-adopt-standard[bot]" <290475042+ip-adopt-standard[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 07:30:38 +0000 Subject: [PATCH 6/6] feat(governance): adopt devops-excellence standard (.claude/settings.json) --- .claude/settings.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .claude/settings.json diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..7d22894 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,23 @@ +{ + "extraKnownMarketplaces": { + "compound-engineering-plugin": { + "source": { + "source": "github", + "repo": "EveryInc/compound-engineering-plugin" + } + }, + "integral-productivity-internal": { + "source": { + "source": "github", + "repo": "Integral-Productivity/marketplace-internal" + } + } + }, + "enabledPlugins": { + "compound-engineering@compound-engineering-plugin": true, + "integral-productivity-engineering@integral-productivity-internal": true, + "software-architecture@integral-productivity-internal": true, + "product-architecture@integral-productivity-internal": true, + "lean-management@integral-productivity-internal": true + } +}