Agent Plugins Marketplace
All plugins

dkj-policy-bwj

v5.6.0

The shared law layer for BWJ's two Shopify stores (smartwatchbanden and xoxowildhearts), packaged so both repos run one identical procedure and cannot drift on it. Four chapters. TICKET HANDLING: a discovered issue is created on GitHub first (GitHub is the source of truth), then mirrored to Asana as a colleague-friendly variant, cross-linked both ways; closing the GitHub issue makes a CI workflow post an update saying the work is ready to test and move the card, never ticking the task off - only the colleague who asked for it can do that. THE SYNC LOG: a 'sync/' branch mirrors what a third party changed on the live theme, is exempt from the changelog by design, and therefore owes a sync-log entry instead - dkj-policy-bwj/SYNC-LOG.md, newest at the top, written and committed by dkj-subagents-shopify's sync-main.ps1 in the same breath as the branch, never folded and never released. THE PREVIEW HANDOVER: where a preview is owed, it is a PAIR per market - the preview beside the live control, whose URL pins the live theme id, because preview_theme_id sets a cookie and the bare URL then keeps serving the preview while the reviewer believes they are looking at live. That pair travels as ONE link to a published page carrying a QR code per market, plus what the gates already proved and the one question being asked - never as a table of URLs, which a terminal wraps past selecting and a phone cannot scan. THE THEME LIFECYCLE: the estate owes two things at the two moments it grows - after the live push, the spent preview themes THIS repo created are swept away; at the release cut that closes that push, a fresh backup of live is taken, polled until it is provably complete (the CLI returns long before the copy is), and only then is the previous backup rotated out, so exactly one is retained and there is never a window with none. Every delete is bounded by a reserved name prefix this repo wrote, never by a theme's role: a store carries far more themes belonging to agencies, apps and colleagues than to the repo, and a role-keyed sweep would destroy them all while looking correct. It relaxes nothing about which changes owe a preview, or about no PR opening before one is approved - it tightens both, by adding exactly TWO steps to that workflow's cycle and changing nothing before the step list. The last step under '### CREATE' is always 'Is the change visible in the frontend / storefront?': dropped with its reason where nothing renders, and otherwise a preview theme, a comment on the GitHub issue carrying the steps and every URL, and ticked only once a PERSON confirms they looked - being last is what makes dkj-policy's own step-list gate hold the PR until then, since an agent can prove a theme exists and never that somebody looked at it. And just before the issue is closed, the paste-ready block gains its go-live half: the next release day (BWJ cuts on Mondays), the version that release is on course for, and the live storefront URL per market - written by build-golive-block.ps1, worded as a plan rather than a promise, and leaving out any fact it cannot derive instead of guessing one. It is an ADDITIVE add-on to 'dkj-policy', not a replacement: it extends four seams of that workflow - the ticket-work layer before a branch, what a sync branch owes, how a preview is handed over, and what the theme estate owes at a push and a cut - and says nothing about branch naming, what an ordinary change owes before a PR, or what a release is. Every chapter is policy rather than mechanism: the Asana CI lives in each repo's .github/, and the sync and preview machinery in 'dkj-subagents-shopify'. Requires the core team 'dkj-subagents-alpha' and 'dkj-policy'; the sync and preview chapters also expect 'dkj-subagents-shopify'. Enable this in BWJ's two Shopify store repos for all four chapters, or in this plugin's own source repo for ticket handling alone (admitted September 14, 2026, commit b9b2a65a) -- the other three chapters are Shopify-store policy and stay at the two stores.

Claude Code5 Skills

By DaveKJohn1 GitHub starsUpdated yesterday

Directory evidence

Runtimes
Claude Code
Parsed components
5 skill or MCP entries
Source updated
Sep 22, 2026
Manifest status
Canonical path parsed

The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology

Install dkj-policy-bwj for Claude Code

Installs for the current user
claude plugin marketplace add IchenDEV/agent-plugin-mkt
claude plugin marketplace update agent-plugin-marketplace
claude plugin install dkj-policy-bwj@agent-plugin-marketplace

Paste and run these commands in a terminal with Claude Code. They add and refresh the PluginsMP catalog, then install this plugin.

The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.

Get the source manually
git clone https://github.com/DKJ-Solutions/dkj-claude-plugins

Clone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is plugins/dkj-policy/dkj-policy-bwj/.

Plugin files

plugins/dkj-policy/dkj-policy-bwj/
├── .claude-plugin/plugin.json
├── skills/adopt-dkj-policy-bwj/SKILL.md
├── skills/build-backlog-page/SKILL.md
├── skills/golive-block/SKILL.md
├── skills/publish-page/SKILL.md
└── skills/report-issue/SKILL.md

Included Skills5

adopt-dkj-policy-bwjskills/adopt-dkj-policy-bwj/SKILL.md

One-time setup of dkj-policy-bwj in a repo permitted to run it -- BWJ's two stores (smartwatchbanden or xoxowildhearts, whichever org) and the plugin's own source repo dkj-claude-plugins -- it refuses to run anywhere else -- both chapters: copy the asana-mirror CI mechanism into .github/, propose the Asana config seam for scripts/repo-config.ps1, print the repo secret and variables the CI needs, check that the classification labels exist, report whether the board's sections are numbered so the stage model can read them, and scaffold chapter two's dkj-policy-bwj/SYNC-LOG.md with its masthead, ready for the first sync branch. Strictly additive and dry-run by default; it never overwrites an existing file, and it renames nothing on the board. Run this right after enabling the plugin, or when report-issue reports the Asana config seam missing.

build-backlog-pageskills/build-backlog-page/SKILL.md

Build minor-backlog.html: the open issues carrying the reach label, shown with the colleague-facing text their mirrored Asana tasks already carry -- never the GitHub issue's own developer-facing title and body. Use it whenever the backlog page needs refreshing before a publish, or to see what a colleague would currently read. It only writes the local file; publish-page.ps1 -Kind backlog is the separate, later step that sends it out.

golive-blockskills/golive-block/SKILL.md

Write the paste-ready block for a GitHub issue, including its go-live half: where the result can be seen, when it is planned to go live (the next release day), which version it is on course for, and the live storefront URL per market. Use it as the closing act of the chain that shipped the work, while the issue is still OPEN -- closing the issue is the confirmation that the block reached the Asana task. It prints by default and posts only with -Post; it never touches Asana, and it never writes a placeholder link.

publish-pageskills/publish-page/SKILL.md

Publish a built HTML page -- the release notes, or the minor backlog -- to the ONE Cloudflare Worker both BWJ store repos share, where it is served at an unguessable path. Use it after a page has been built, when a colleague outside the development work has to read something that lives as markdown in a private repository. The worker holds no page content of its own: the pages sit in KV, one key per kind and token, which is what lets two repos deploy the same worker without either one erasing the other's page. It publishes an existing file and never builds one, and it verifies by reading the bytes back rather than by believing the upload.

report-issueskills/report-issue/SKILL.md

File a discovered issue the BWJ way -- GitHub first (the source of truth, classified at creation with its issue type and the reach label), then a colleague-facing Asana task, cross-linked both ways. Use this in a repo that runs the BWJ procedure -- smartwatchbanden or xoxowildhearts (whichever org), or the plugin's own source repo dkj-claude-plugins -- whenever a real finding needs tracking: a bug, a broken customer-facing behaviour, a stale doc, a decision that is not yours to make. The Asana card lands in the board's `Filed` section -- tracked on GitHub now -- because the board's sections are the cycle's stages. The GitHub issue always gets created even if Asana is unreachable, so the source-of-truth guarantee holds. Nothing here resolves a ticket and nothing downstream does either: closing the GitHub issue only makes the asana-mirror CI workflow post an update saying the work is ready to test and move the card to `ReadyToTest`, and the colleague who filed it ticks it off.

Plugin manifests1

plugins/dkj-policy/dkj-policy-bwj/.claude-plugin/plugin.json
{
  "name": "dkj-policy-bwj",
  "displayName": "Claude Specialists - DKJ policy for BWJ (policy scaffold, BWJ scope)",
  "description": "The shared law layer for BWJ's two Shopify stores (smartwatchbanden and xoxowildhearts), packaged so both repos run one identical procedure and cannot drift on it. Four chapters. TICKET HANDLING: a discovered issue is created on GitHub first (GitHub is the source of truth), then mirrored to Asana as a colleague-friendly variant, cross-linked both ways; closing the GitHub issue makes a CI workflow post an update saying the work is ready to test and move the card, never ticking the task off - only the colleague who asked for it can do that. THE SYNC LOG: a 'sync/' branch mirrors what a third party changed on the live theme, is exempt from the changelog by design, and therefore owes a sync-log entry instead - dkj-policy-bwj/SYNC-LOG.md, newest at the top, written and committed by dkj-subagents-shopify's sync-main.ps1 in the same breath as the branch, never folded and never released. THE PREVIEW HANDOVER: where a preview is owed, it is a PAIR per market - the preview beside the live control, whose URL pins the live theme id, because preview_theme_id sets a cookie and the bare URL then keeps serving the preview while the reviewer believes they are looking at live. That pair travels as ONE link to a published page carrying a QR code per market, plus what the gates already proved and the one question being asked - never as a table of URLs, which a terminal wraps past selecting and a phone cannot scan. THE THEME LIFECYCLE: the estate owes two things at the two moments it grows - after the live push, the spent preview themes THIS repo created are swept away; at the release cut that closes that push, a fresh backup of live is taken, polled until it is provably complete (the CLI returns long before the copy is), and only then is the previous backup rotated out, so exactly one is retained and there is never a window with none. Every delete is bounded by a reserved name prefix this repo wrote, never by a theme's role: a store carries far more themes belonging to agencies, apps and colleagues than to the repo, and a role-keyed sweep would destroy them all while looking correct. It relaxes nothing about which changes owe a preview, or about no PR opening before one is approved - it tightens both, by adding exactly TWO steps to that workflow's cycle and changing nothing before the step list. The last step under '### CREATE' is always 'Is the change visible in the frontend / storefront?': dropped with its reason where nothing renders, and otherwise a preview theme, a comment on the GitHub issue carrying the steps and every URL, and ticked only once a PERSON confirms they looked - being last is what makes dkj-policy's own step-list gate hold the PR until then, since an agent can prove a theme exists and never that somebody looked at it. And just before the issue is closed, the paste-ready block gains its go-live half: the next release day (BWJ cuts on Mondays), the version that release is on course for, and the live storefront URL per market - written by build-golive-block.ps1, worded as a plan rather than a promise, and leaving out any fact it cannot derive instead of guessing one. It is an ADDITIVE add-on to 'dkj-policy', not a replacement: it extends four seams of that workflow - the ticket-work layer before a branch, what a sync branch owes, how a preview is handed over, and what the theme estate owes at a push and a cut - and says nothing about branch naming, what an ordinary change owes before a PR, or what a release is. Every chapter is policy rather than mechanism: the Asana CI lives in each repo's .github/, and the sync and preview machinery in 'dkj-subagents-shopify'. Requires the core team 'dkj-subagents-alpha' and 'dkj-policy'; the sync and preview chapters also expect 'dkj-subagents-shopify'. Enable this in BWJ's two Shopify store repos for all four chapters, or in this plugin's own source repo for ticket handling alone (admitted September 14, 2026, commit b9b2a65a) -- the other three chapters are Shopify-store policy and stay at the two stores.",
  "version": "5.6.0",
  "author": {
    "name": "DaveKJohn"
  },
  "keywords": [
    "specialists",
    "workflow",
    "claude-code",
    "asana",
    "issue-tracking",
    "shopify",
    "bwj",
    "sync-log",
    "opt-in"
  ]
}

If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.

[dkj-policy-bwj on Agent Plugins Marketplace](https://pluginsmp.com/plugins/dkj-policy-bwj)