Skip to content
Open

s #58673

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
cfe1d85
feat: Add Source Build Australia complete marketing suite
claude May 9, 2026
bdebda2
feat: Add Netlify deployment config and wire Netlify Forms
claude May 9, 2026
0d69e62
fix: Add image unoptimized flag and Node 20 for Netlify static export
claude May 9, 2026
68d0673
chore: Finalise Netlify deployment config
claude May 9, 2026
fafa68e
Merge pull request #1 from sjbrenchley89/claude/marketing-management-…
sjbrenchley89 May 9, 2026
9ed253c
feat: Add missing plugin.json manifest for plugin-dev plugin
claude May 13, 2026
3f2f5ed
Merge pull request #2 from sjbrenchley89/claude/implement-plugin-syst…
sjbrenchley89 May 13, 2026
6e8779f
Merge branch 'anthropics:main' into main
sjbrenchley89 May 13, 2026
7db586e
fix: Add missing version and author fields to agent-sdk-dev in market…
claude May 13, 2026
405fd59
Merge pull request #3 from sjbrenchley89/claude/implement-plugin-syst…
sjbrenchley89 May 13, 2026
d759411
feat: Add claude-flow plugin for AI agent orchestration
claude May 13, 2026
89c9eae
Merge pull request #4 from sjbrenchley89/claude/install-claude-flow-Q…
sjbrenchley89 May 13, 2026
cb1040b
feat: Add official plugins directory
claude May 13, 2026
78c0d37
Merge pull request #5 from sjbrenchley89/claude/create-plugins-direct…
sjbrenchley89 May 13, 2026
6436775
Merge branch 'anthropics:main' into main
sjbrenchley89 May 16, 2026
93ad535
Add ruflo marketplace and install core plugins (ruflo-core, ruflo-swa…
sjbrenchley89 May 17, 2026
4599c06
Merge pull request #6 from sjbrenchley89/claude/add-marketplace-plugi…
sjbrenchley89 May 17, 2026
161d9a6
feat: Register claude-flow plugin by ruvnet in directory.json
claude May 18, 2026
0603518
Merge pull request #7 from sjbrenchley89/claude/add-claude-flow-plugi…
sjbrenchley89 May 18, 2026
d6157dc
Merge branch 'anthropics:main' into main
sjbrenchley89 May 20, 2026
dd0d7ce
Merge branch 'anthropics:main' into main
sjbrenchley89 May 22, 2026
76ed78c
Update source-build-australia npm dependencies to latest versions
claude May 24, 2026
a4784fc
Merge pull request #8 from sjbrenchley89/claude/lucid-einstein-Xu67G
sjbrenchley89 May 24, 2026
04ea632
Add Business Agent managed-agents setup and runtime
sjbrenchley89 May 24, 2026
b36d3ba
Merge pull request #9 from sjbrenchley89/claude/zen-curie-WmobL
sjbrenchley89 May 24, 2026
4526310
Merge branch 'anthropics:main' into main
sjbrenchley89 May 26, 2026
532149a
Add Python SDK setup script (ant CLI alternative)
sjbrenchley89 May 26, 2026
089317d
feat: add anthropic-mcp plugin
claude May 26, 2026
f9e9afc
Merge pull request #11 from sjbrenchley89/claude/install-anthropic-mc…
sjbrenchley89 May 26, 2026
e3652f5
ci: add JSON validation workflow; add claude-flow to marketplace
claude May 26, 2026
55c373d
docs: add CLAUDE.md with codebase guidance for AI assistants (#10)
sjbrenchley89 May 26, 2026
5810c88
feat: Source Build Australia — complete marketing management system
sjbrenchley89 Jun 1, 2026
2094183
feat(plugin): add business-agent plugin for managed-agent lifecycle
claude May 26, 2026
b3d9017
fix(plugin): add business-agent to marketplace.json and align plugin.…
claude May 26, 2026
295c8f1
docs: clarify dual-manifest requirement for new plugins in CLAUDE.md …
sjbrenchley89 Jun 1, 2026
09763da
chore: Ignore .netlify/, out/, and .next/ in gitignore
sjbrenchley89 Jun 1, 2026
1e0d26c
Merge branch 'anthropics:main' into main
sjbrenchley89 Jun 4, 2026
18a1f68
Add or update the Azure App Service build and deployment workflow config
sjbrenchley89 Jun 5, 2026
22c0508
Set up CI with Azure Pipelines
sjbrenchley89 Jun 7, 2026
da97a4f
Merge branch 'anthropics:main' into main
sjbrenchley89 Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,58 @@
"name": "Anthropic",
"email": "support@anthropic.com"
},
"marketplaces": [
{
"name": "ruflo",
"source": "ruvnet/ruflo",
"url": "https://github.com/ruvnet/ruflo"
}
],
"plugins": [
{
"name": "claude-flow",
"description": "AI agent orchestration using claude-flow (RuFlo) — coordinate swarms of specialized agents, hive-mind consensus, and persistent task automation within Claude Code",
"version": "1.0.0",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
},
"source": "./plugins/claude-flow",
"category": "development"
},
{
"name": "anthropic-mcp",
"description": "Registers the official Anthropic MCP server, giving Claude Code direct access to Claude models and the Anthropic API",
"version": "1.0.0",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
},
"source": "./plugins/anthropic-mcp",
"category": "development"
},
{
"name": "agent-sdk-dev",
"description": "Development kit for working with the Claude Agent SDK",
"version": "1.0.0",
"author": {
"name": "Ashwin Bhat",
"email": "ashwin@anthropic.com"
},
"source": "./plugins/agent-sdk-dev",
"category": "development"
},
{
"name": "business-agent",
"description": "Manage the business-agent managed-agent lifecycle: setup, run, and update sessions via the Claude Agent SDK",
"version": "1.0.0",
"author": {
"name": "sjbrenchley89",
"email": "9turnbull@gmail.com"
},
"source": "./plugins/business-agent",
"category": "development"
},
{
"name": "claude-opus-4-5-migration",
"description": "Migrate your code and prompts from Sonnet 4.x and Opus 4.1 to Opus 4.5.",
Expand Down Expand Up @@ -145,6 +190,54 @@
},
"source": "./plugins/security-guidance",
"category": "security"
},
{
"name": "ruflo-core",
"description": "Foundation plugin \u2014 registers the ruflo MCP server (300+ tools across memory/agentdb/embeddings/hooks/aidefence/neural/autopilot/browser/agent/swarm), provides 3 generalist agents (coder/researcher/reviewer), 3 first-run skills, and a curated plugin-discovery catalog",
"version": "0.2.2",
"author": {
"name": "ruvnet",
"url": "https://github.com/ruvnet"
},
"source": "./plugins/ruflo-core",
"category": "development",
"marketplace": "ruflo"
},
{
"name": "ruflo-swarm",
"description": "Agent teams, swarm coordination, Monitor streams, and worktree isolation \u2014 wraps 4 swarm_* + 8 agent_* MCP tools (12 total) plus 6 topologies (hierarchical / mesh / hierarchical-mesh / ring / star / adaptive)",
"version": "0.2.0",
"author": {
"name": "ruvnet",
"url": "https://github.com/ruvnet"
},
"source": "./plugins/ruflo-swarm",
"category": "development",
"marketplace": "ruflo"
},
{
"name": "ruflo-autopilot",
"description": "Autonomous /loop-driven task completion with learning, prediction, and progress tracking \u2014 wraps 10 autopilot_* MCP tools (status/enable/disable/config/reset/log/progress/learn/history/predict)",
"version": "0.2.0",
"author": {
"name": "ruvnet",
"url": "https://github.com/ruvnet"
},
"source": "./plugins/ruflo-autopilot",
"category": "development",
"marketplace": "ruflo"
},
{
"name": "ruflo-federation",
"description": "Cross-installation agent federation with zero-trust security, peer discovery, consensus-based task routing, and per-call budget circuit breaker (ADR-097)",
"version": "0.2.0",
"author": {
"name": "ruvnet",
"url": "https://github.com/ruvnet"
},
"source": "./plugins/ruflo-federation",
"category": "development",
"marketplace": "ruflo"
}
]
}
32 changes: 32 additions & 0 deletions .github/workflows/build-site.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Build Site

on:
push:
branches: [main]
paths:
- 'source-build-australia/**'
pull_request:
paths:
- 'source-build-australia/**'

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: source-build-australia
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: source-build-australia/package-lock.json

- run: npm ci

- run: npm run build
52 changes: 52 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: CI

on:
push:
branches: [main, "claude/**"]
pull_request:
branches: [main]

jobs:
validate:
name: Validate plugin JSON
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Validate all JSON files
run: |
find . -name "*.json" -not -path "./.git/*" | while read f; do
python3 -c "import json,sys; json.load(open('$f'))" || { echo "Invalid JSON: $f"; exit 1; }
done
echo "All JSON files are valid."

- name: Check every plugin has plugin.json
run: |
for dir in plugins/*/; do
[ -d "$dir" ] || continue
plugin=$(basename "$dir")
if [ ! -f "${dir}.claude-plugin/plugin.json" ]; then
echo "Missing .claude-plugin/plugin.json in $plugin"
exit 1
fi
done
echo "All plugins have plugin.json."

- name: Check marketplace.json lists every plugin
run: |
for dir in plugins/*/; do
[ -d "$dir" ] || continue
plugin=$(basename "$dir")
if ! python3 -c "
import json, sys
data = json.load(open('.claude-plugin/marketplace.json'))
names = [p['name'] for p in data['plugins']]
if '$plugin' not in names:
print(f'Plugin $plugin missing from marketplace.json')
sys.exit(1)
"; then
exit 1
fi
done
echo "All plugins are listed in marketplace.json."
65 changes: 65 additions & 0 deletions .github/workflows/main_claude-code.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy Node.js app to Azure Web App - claude-code

on:
push:
branches:
- main
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read #This is required for actions/checkout

steps:
- uses: actions/checkout@v4

- name: Set up Node.js version
uses: actions/setup-node@v3
with:
node-version: '24.x'

- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present

- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: node-app
path: .

deploy:
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write #This is required for requesting the JWT
contents: read #This is required for actions/checkout

steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: node-app

- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_59888C637F0A4B698C4394758D51FE1C }}
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_707EEB1695864E58B49A79C3A596A9D8 }}
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_8B704A11491E42E39C33E2F7B51BB1A8 }}

- name: 'Deploy to Azure Web App'
id: deploy-to-webapp
uses: azure/webapps-deploy@v3
with:
app-name: 'claude-code'
slot-name: 'Production'
package: .

4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
.DS_Store

.netlify/
source-build-australia/out/
source-build-australia/.next/
14 changes: 14 additions & 0 deletions .netlifyignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
source-build-australia/node_modules
source-build-australia/.next
.git
plugins
examples
brand
*.md
*.gif
demo.gif
Script
.devcontainer
.vscode
.github
.claude
102 changes: 102 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## What This Repository Is

This is a fork of `anthropics/claude-code`, extended with:
- **`plugins/`** — Official Claude Code plugins (agents, skills, hooks, commands)
- **`source-build-australia/`** — A Next.js marketing/product site deployed via Netlify
- **`business-agent/`** — A managed-agent definition using the Claude Agent SDK
- **`examples/`** — GitHub automation scripts (issue lifecycle, label management, duplicate detection)
- **`scripts/`** — Shared GitHub CLI wrappers and utilities used by examples

The upstream docs (README, CHANGELOG, SECURITY, LICENSE) live at the root and are periodically synced from `anthropics:main`.

---

## Source-Build-Australia (Next.js App)

Located at `source-build-australia/`. This is the site deployed to Netlify (`publish = "source-build-australia/out"`).

```bash
cd source-build-australia
npm run dev # Dev server on http://localhost:3000
npm run build # Static export to out/
npm run start # Serve the export locally
```

The app uses the Next.js App Router. Routes live under `app/` (e.g. `app/about/`, `app/products/`). Shared UI components are in `components/`. The AGENTS.md file at the root of this subdirectory contains Next.js-specific agent rules — read it before editing any Next.js code, as this version may have breaking changes from the canonical Next.js you know.

---

## Business Agent

Located at `business-agent/`. A Claude Agent SDK managed-agent that scans GitHub repositories for open issues and opens fix PRs.

- `business-agent.agent.yaml` — Agent definition (model, tools, skills, MCP servers)
- `business-agent.environment.yaml` — Runtime environment config
- `setup.sh` — One-time setup: creates agent and environment via `ant beta:agents/environments`, writes IDs to `.env`
- `run_agent.py` — Triggers a run against the created agent/environment
- `requirements.txt` — Python dependencies

To update the agent after editing the YAML:
```bash
ant beta:agents update --agent-id "$AGENT_ID" < business-agent.agent.yaml
```

---

## Plugins

Located at `plugins/`. Each subdirectory is a self-contained Claude Code plugin. The canonical plugin structure:

```
plugin-name/
├── .claude-plugin/plugin.json # Required metadata
├── commands/ # Slash commands (*.md files)
├── agents/ # Agent definitions (*.md files)
├── skills/ # SKILL.md files
├── hooks/ # Hook scripts
├── .mcp.json # MCP server wiring (optional)
└── README.md
```

See `plugins/example-plugin/` for a reference implementation. All plugins listed in the root `directory.json` are part of the official Claude Code plugin marketplace — entries reference either local paths (`"source": "./plugins/..."`) or external git repos with pinned SHAs.

---

## Examples / Scripts

`examples/` contains GitHub automation tools run as one-off scripts or GitHub Actions:
- `issue-lifecycle.ts` / `lifecycle-comment.ts` — Auto-comment and close stale issues
- `auto-close-duplicates.ts` — Detect and close duplicate issues
- `backfill-duplicate-comments.ts` — Retroactively comment on duplicates
- `gh.sh` — Restricted `gh` CLI wrapper (allow-listed subcommands only)
- `sweep.ts` / `edit-issue-labels.sh` — Bulk label management

`scripts/` contains the shared `gh.sh` wrapper and other utilities referenced by both `examples/` and GitHub Actions.

---

## Adding a New Local Plugin

When adding a new plugin to `plugins/`, update **both** manifests or CI will fail:

1. **`directory.json`** (root) — the public marketplace manifest. Add an entry with `name`, `description`, `author`, `category`, and `"source": "./plugins/<name>"`.

2. **`.claude-plugin/marketplace.json`** — the bundled plugin registry. Add an entry with the same fields **plus** `version` and `author.email`. The "Validate plugin JSON" CI check enforces this.

Required `marketplace.json` entry shape:
```json
{
"name": "plugin-name",
"description": "...",
"version": "1.0.0",
"author": { "name": "...", "email": "..." },
"source": "./plugins/plugin-name",
"category": "development"
}
```

External plugins (git-subdir or URL source) go in `directory.json` only, with a pinned `sha`.
Loading