jules-orchestrator-kit 0.1.0 ā 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/history/2026-07-27-dispatch-nightly-accessibility-aria-audit.md +12 -0
- package/.agent/history/2026-07-27-dispatch-nightly-dead-code-unused-exports-audit.md +12 -0
- package/.agent/history/2026-07-27-dispatch-nightly-security-secret-leaks-audit.md +12 -0
- package/.agent/history/2026-07-27-dispatch-nightly-unused-environment-variable-audit.md +12 -0
- package/.agent/history/2026-07-27-nightly-audit.md +13 -0
- package/.agent/jules-queue/README.md +23 -0
- package/.agent/jules.yml +13 -0
- package/.agent/rules/dynamic-guardrails.json +24 -0
- package/.agent/workflows/jules-review.md +69 -0
- package/JULES_RULES_TEMPLATE.md +1 -1
- package/README.md +15 -4
- package/bin/init.js +26 -1
- package/package.json +2 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: jules_dispatch
|
|
3
|
+
title: "Nightly Accessibility & ARIA Audit"
|
|
4
|
+
timestamp: "2026-07-27T03:42:08.297Z"
|
|
5
|
+
---
|
|
6
|
+
# Jules Task Dispatch: Nightly Accessibility & ARIA Audit
|
|
7
|
+
|
|
8
|
+
## Prompt
|
|
9
|
+
Audit UI components for WCAG 2.2 AA accessibility standards. Verify that form inputs have labels, interactive elements support keyboard focus, and all images have descriptive alt text.
|
|
10
|
+
|
|
11
|
+
## Session
|
|
12
|
+
- ID: `sessions/2975900389302221090`
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: jules_dispatch
|
|
3
|
+
title: "Nightly Dead Code & Unused Exports Audit"
|
|
4
|
+
timestamp: "2026-07-27T03:42:12.539Z"
|
|
5
|
+
---
|
|
6
|
+
# Jules Task Dispatch: Nightly Dead Code & Unused Exports Audit
|
|
7
|
+
|
|
8
|
+
## Prompt
|
|
9
|
+
Audit the codebase for unused exports, dead files, and obsolete types. Prune unused local utility functions and unreferenced internal types. SAFETY INVARIANTS: 1. DO NOT remove package dependencies from package.json, Cargo.toml, or requirements.txt (hygiene sweeps may ADD dependencies, never REMOVE). 2. DO NOT delete or commit untracked WIP files created by developers. 3. Verify that test and build suites pass 100% cleanly before submitting PR.
|
|
10
|
+
|
|
11
|
+
## Session
|
|
12
|
+
- ID: `sessions/5929124864335143740`
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: jules_dispatch
|
|
3
|
+
title: "Nightly Security & Secret Leaks Audit"
|
|
4
|
+
timestamp: "2026-07-27T03:42:04.690Z"
|
|
5
|
+
---
|
|
6
|
+
# Jules Task Dispatch: Nightly Security & Secret Leaks Audit
|
|
7
|
+
|
|
8
|
+
## Prompt
|
|
9
|
+
Perform a security review of the repository. Scan for hardcoded API keys, exposed secrets, unmasked PII in logs, and unvalidated input parameters in public endpoints. Safety rule: Never commit untracked files or secrets to git.
|
|
10
|
+
|
|
11
|
+
## Session
|
|
12
|
+
- ID: `sessions/2599982382207455757`
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: jules_dispatch
|
|
3
|
+
title: "Nightly Unused Environment Variable Audit"
|
|
4
|
+
timestamp: "2026-07-27T03:42:16.583Z"
|
|
5
|
+
---
|
|
6
|
+
# Jules Task Dispatch: Nightly Unused Environment Variable Audit
|
|
7
|
+
|
|
8
|
+
## Prompt
|
|
9
|
+
Scan configuration files and environment variable declarations against codebase usage. Identify unused or zombie environment variables that are declared but never referenced in source code. Document findings and remove obsolete declarations.
|
|
10
|
+
|
|
11
|
+
## Session
|
|
12
|
+
- ID: `sessions/4603416712706872745`
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: nightly_jules_audit
|
|
3
|
+
timestamp: "2026-07-27T03:42:20.285Z"
|
|
4
|
+
status: "[DISPATCHED]"
|
|
5
|
+
---
|
|
6
|
+
# Nightly Jules Maintenance Suite Audit - 2026-07-27
|
|
7
|
+
|
|
8
|
+
Summary of automated audit dispatches:
|
|
9
|
+
|
|
10
|
+
- **Nightly Security & Secret Leaks Audit** (`sec-review`): Dispatched successfully
|
|
11
|
+
- **Nightly Accessibility & ARIA Audit** (`a11y-audit`): Dispatched successfully
|
|
12
|
+
- **Nightly Dead Code & Unused Exports Audit** (`dead-code-prune`): Dispatched successfully
|
|
13
|
+
- **Nightly Unused Environment Variable Audit** (`zombie-env-audit`): Dispatched successfully
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Jules Task Queue Directory
|
|
2
|
+
|
|
3
|
+
Drop markdown task specification files here (e.g. `TASK-001-feature-name.md`) to queue tasks for background execution by Google Jules.
|
|
4
|
+
|
|
5
|
+
### File Format Example
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# TASK-001: Implement User Rate Limiting
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
Implement sliding window rate limiting for public API routes.
|
|
12
|
+
|
|
13
|
+
## Execution Rules
|
|
14
|
+
- Use Redis / memory store for tracking hit counts.
|
|
15
|
+
- Must return HTTP 429 Too Many Requests when limit is exceeded.
|
|
16
|
+
- Must pass `npm test` before submitting PR.
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Dispatch queued tasks using `scripts/jules-dispatch.mjs`:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
node scripts/jules-dispatch.mjs "TASK-001 Rate Limiting" .agent/jules-queue/TASK-001-rate-limiting.md
|
|
23
|
+
```
|
package/.agent/jules.yml
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Google Jules Repository Configuration (Version 2)
|
|
2
|
+
version: 2
|
|
3
|
+
test_cmd: "npm test"
|
|
4
|
+
build_cmd: ""
|
|
5
|
+
forbidden_paths:
|
|
6
|
+
- ".github/**"
|
|
7
|
+
- "**/secrets/**"
|
|
8
|
+
- "**/*.pem"
|
|
9
|
+
- "**/lock-manager/**"
|
|
10
|
+
- "scripts/jules-*"
|
|
11
|
+
- ".agent/jules.yml"
|
|
12
|
+
allow_paths: []
|
|
13
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"rules": [
|
|
3
|
+
{
|
|
4
|
+
"trigger": "\\.astro",
|
|
5
|
+
"guardrail": "## š¢ ASTRO GUARDRAILS\n- DO NOT run `biome check --write --unsafe` on `.astro` files (destroys frontmatter).\n- DO NOT import 'sharp' into runtime bundles."
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"trigger": "\\b(db|database|drizzle|sql\\w*|postgres\\w*|sqlite\\w*|mysql\\w*)\\b",
|
|
9
|
+
"guardrail": "## šļø DATABASE GUARDRAILS\n- Always batch multiple database statements.\n- DO NOT write destructive migrations (`DROP TABLE`) without explicit user consent."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"trigger": "\\b(css|theme|tailwind)\\b",
|
|
13
|
+
"guardrail": "## šØ CSS & DESIGN GUARDRAILS\n- Use semantic design tokens from the theme rather than hardcoding hex values."
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"trigger": "\\b(regex|redact|secret|token|auth)\\b",
|
|
17
|
+
"guardrail": "## š SECRET REDACTION GUARDRAILS\n- Never weaken token regular expressions.\n- Always test regexes against full strings without accidental literal characters inside character classes."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"trigger": "\\b(glob|path|win32|windows|slash)\\b",
|
|
21
|
+
"guardrail": "## š CROSS-PLATFORM PATH GUARDRAILS\n- Always replace backslashes `\\\\` with `/` before performing glob pattern matching or string splits."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Framework-agnostic workflow for auditing, rebasing, and merging PRs submitted by Google Jules."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
[ROLE: Code Reviewer & CI/CD Gatekeeper]
|
|
6
|
+
CONTEXT:
|
|
7
|
+
|
|
8
|
+
- Primary autonomous worker: Google Jules (`jules`)
|
|
9
|
+
- Core Directives: `AGENTS.md` / `JULES.md`
|
|
10
|
+
- Verification Commands: Project build & test suite (`npm run check:all`, `npm test`, `cargo test`, `pytest`)
|
|
11
|
+
|
|
12
|
+
TASK: Rigorously audit, rebase, and verify PRs created by Google Jules before merging.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
PHASE 0: PR DISCOVERY & ISOLATION
|
|
17
|
+
|
|
18
|
+
1. **Identify Target PR**:
|
|
19
|
+
- List open PRs from Jules:
|
|
20
|
+
```bash
|
|
21
|
+
gh pr list --author "app/jules"
|
|
22
|
+
```
|
|
23
|
+
- Fetch the PR diff against merge-base:
|
|
24
|
+
```bash
|
|
25
|
+
gh pr diff <PR_NUMBER>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
2. **Verify Change Boundaries**:
|
|
29
|
+
- Confirm PR does NOT touch restricted files:
|
|
30
|
+
- ā `.github/` workflows or secret configurations
|
|
31
|
+
- ā Lock manager infrastructure
|
|
32
|
+
- ā Unapproved database schema drops
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
PHASE 1: AUTOMATED AUDIT & REBASE
|
|
37
|
+
|
|
38
|
+
1. **Execute Self-Audit Script**:
|
|
39
|
+
- Run the self-audit script:
|
|
40
|
+
```bash
|
|
41
|
+
node scripts/jules-self-audit.mjs
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
2. **Rebase Branch**:
|
|
45
|
+
- Ensure the PR branch is rebased on latest `main`:
|
|
46
|
+
```bash
|
|
47
|
+
git fetch origin main
|
|
48
|
+
git rebase origin/main
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
PHASE 2: VERIFICATION & COMPLIANCE
|
|
54
|
+
|
|
55
|
+
1. **Type & Test Suite Check**:
|
|
56
|
+
- Run full verification suite:
|
|
57
|
+
```bash
|
|
58
|
+
npm test && npm run build
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
PHASE 3: MERGE & HANDOVER
|
|
64
|
+
|
|
65
|
+
1. **Merge PR**:
|
|
66
|
+
- Merge approved PR via GitHub CLI:
|
|
67
|
+
```bash
|
|
68
|
+
gh pr merge <PR_NUMBER> --squash --delete-branch
|
|
69
|
+
```
|
package/JULES_RULES_TEMPLATE.md
CHANGED
|
@@ -33,7 +33,7 @@ Dispatch tasks to Jules when ALL of the following apply:
|
|
|
33
33
|
## 3. Dynamic Command Resolution
|
|
34
34
|
|
|
35
35
|
Jules automatically infers test and build verification commands based on project manifest files:
|
|
36
|
-
- `package.json` -> `npm
|
|
36
|
+
- `package.json` -> `npm test && npm run build`
|
|
37
37
|
- `Cargo.toml` -> `cargo test --workspace && cargo build`
|
|
38
38
|
- `go.mod` -> `go test ./... && go build ./...`
|
|
39
39
|
- `pyproject.toml` -> `pytest`
|
package/README.md
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
# Google Jules Orchestration Kit
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/jules-orchestrator-kit)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
3
6
|
A lightweight, framework-agnostic toolkit for turning **Google Jules** into a deterministic, autonomous background code builder for any repository (Next.js, Vite, Node, Bun, Deno, Python, Go, Rust, Elixir, Ruby, Swift, Java, C/C++, Monorepos, etc.).
|
|
4
7
|
|
|
5
|
-
> **TL;DR**: Don't use Google Jules like a chat assistant. Use it as an autonomous background worker. Run `npx
|
|
8
|
+
> **TL;DR**: Don't use Google Jules like a chat assistant. Use it as an autonomous background worker. Run `npx jules-orchestrator-kit` inside any repository to automatically detect your tech stack, generate prompt guardrails, set up test/build verification gates, and install Jules orchestration scripts.
|
|
6
9
|
|
|
7
10
|
---
|
|
8
11
|
|
|
@@ -11,7 +14,9 @@ A lightweight, framework-agnostic toolkit for turning **Google Jules** into a de
|
|
|
11
14
|
Run this command inside the root of **any target repository**:
|
|
12
15
|
|
|
13
16
|
```bash
|
|
14
|
-
npx
|
|
17
|
+
npx jules-orchestrator-kit
|
|
18
|
+
# or
|
|
19
|
+
npx jules-init
|
|
15
20
|
```
|
|
16
21
|
|
|
17
22
|
This single command will:
|
|
@@ -51,12 +56,18 @@ node scripts/jules-dispatch.mjs "Refactor rate limiter" "Implement sliding windo
|
|
|
51
56
|
npm run jules:queue
|
|
52
57
|
```
|
|
53
58
|
|
|
54
|
-
### Run Rate-Limited Swarm Dispatch
|
|
55
|
-
|
|
56
59
|
```bash
|
|
57
60
|
JULES_SWARM_CONCURRENCY=5 node scripts/jules-swarm.mjs tasks.json
|
|
58
61
|
```
|
|
59
62
|
|
|
63
|
+
Where `tasks.json` is formatted as:
|
|
64
|
+
```json
|
|
65
|
+
[
|
|
66
|
+
{ "id": "t1", "title": "Refactor Auth", "prompt": "Refactor auth middleware to ESM" },
|
|
67
|
+
{ "id": "t2", "title": "Fix Memory Leak", "prompt": "Fix listener memory leak in websocket event loop" }
|
|
68
|
+
]
|
|
69
|
+
```
|
|
70
|
+
|
|
60
71
|
### Run Nightly Maintenance Suite
|
|
61
72
|
|
|
62
73
|
```bash
|
package/bin/init.js
CHANGED
|
@@ -10,8 +10,24 @@ const __dirname = path.dirname(__filename);
|
|
|
10
10
|
const kitRoot = path.resolve(__dirname, "..");
|
|
11
11
|
const targetDir = process.cwd();
|
|
12
12
|
|
|
13
|
+
const isHelp = process.argv.includes("--help") || process.argv.includes("-h");
|
|
13
14
|
const isForce = process.argv.includes("--force") || process.argv.includes("-f");
|
|
14
15
|
|
|
16
|
+
if (isHelp) {
|
|
17
|
+
console.log(`
|
|
18
|
+
Google Jules Orchestration Kit - Init Scaffolding CLI
|
|
19
|
+
|
|
20
|
+
Usage:
|
|
21
|
+
npx jules-orchestrator-kit [options]
|
|
22
|
+
npx jules-init [options]
|
|
23
|
+
|
|
24
|
+
Options:
|
|
25
|
+
-f, --force Overwrite existing AGENTS.md, .agent/jules.yml, and orchestration scripts.
|
|
26
|
+
-h, --help Show this help message.
|
|
27
|
+
`);
|
|
28
|
+
process.exit(0);
|
|
29
|
+
}
|
|
30
|
+
|
|
15
31
|
console.log("\nš Initializing Google Jules Orchestration Kit...\n");
|
|
16
32
|
console.log(`š Target Directory: ${targetDir}`);
|
|
17
33
|
if (isForce) console.log("ā ļø Force mode enabled (existing files will be overwritten).");
|
|
@@ -34,7 +50,16 @@ if (!fs.existsSync(agentsFile) || isForce) {
|
|
|
34
50
|
console.log("ā
Created: AGENTS.md");
|
|
35
51
|
}
|
|
36
52
|
} else {
|
|
37
|
-
|
|
53
|
+
const existingContent = fs.readFileSync(agentsFile, "utf-8");
|
|
54
|
+
if (!existingContent.includes("<MCP_DIRECTIVE>")) {
|
|
55
|
+
if (fs.existsSync(julesRulesSource)) {
|
|
56
|
+
const templateContent = fs.readFileSync(julesRulesSource, "utf-8");
|
|
57
|
+
fs.appendFileSync(agentsFile, `\n\n---\n\n${templateContent}`, "utf-8");
|
|
58
|
+
console.log("ā
Appended Google Jules directives to existing AGENTS.md");
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
console.log("ā¹ļø AGENTS.md already contains Jules directives (skipped overwrite).");
|
|
62
|
+
}
|
|
38
63
|
}
|
|
39
64
|
|
|
40
65
|
// 3. Scaffold .agent/ structure
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jules-orchestrator-kit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Framework-agnostic toolkit for orchestrating Google Jules background AI coding workers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"bin/",
|
|
12
12
|
"scripts/",
|
|
13
|
+
".agent/",
|
|
13
14
|
"JULES_RULES_TEMPLATE.md",
|
|
14
15
|
"README.md",
|
|
15
16
|
"LICENSE"
|