-
Notifications
You must be signed in to change notification settings - Fork 1
feat(scaffold): B-0424.1 — Forge + ace day-one governance templates + dry-run create-repo tool #2994
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
feat(scaffold): B-0424.1 — Forge + ace day-one governance templates + dry-run create-repo tool #2994
Changes from 4 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
ea871e4
feat(scaffold): B-0424.1 — day-one governance templates + dry-run cre…
AceHack 0b8d86b
fix(scaffold): remove unused readFileSync import and dead execute() f…
AceHack bcd753e
fix(scaffold): push scaffold files before applying branch protection
AceHack 40a3d37
fix(scaffold): address Copilot review findings on PR #2994
AceHack ec1ae3b
fix(scaffold): use dedicated PUT endpoint for private vulnerability r…
AceHack a6b1b57
fix(scaffold): correct step order in README + remove hardcoded co-aut…
AceHack f8e6695
fix(scaffold): address 8 Copilot/Codex review threads on PR #2994
AceHack 780aded
fix(scaffold): address three chatgpt-codex-connector review threads o…
AceHack 80704ed
fix(scaffold): address 14 review threads — role refs, error handling,…
AceHack 26e74ba
fix(scaffold): replace remaining bare memory/ paths in forge/docs/GIT…
AceHack File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| # tools/scaffold — B-0424 Stage 1 repo scaffolding | ||
|
|
||
| Governance-file templates and a dry-run TypeScript tool for creating the | ||
| `LFG/Forge` and `LFG/ace` repos with the full best-practice checklist | ||
| from [ADR 2026-04-22](../../docs/DECISIONS/2026-04-22-three-repo-split-zeta-forge-ace.md). | ||
|
|
||
| ## Usage | ||
|
|
||
| ```bash | ||
| # Preview what will happen (default, no external side effects): | ||
| bun tools/scaffold/create-repo.ts --repo forge --dry-run | ||
| bun tools/scaffold/create-repo.ts --repo ace --dry-run | ||
|
|
||
| # Execute for real (creates GitHub repos under LFG org): | ||
| bun tools/scaffold/create-repo.ts --repo forge --apply | ||
| bun tools/scaffold/create-repo.ts --repo ace --apply | ||
| ``` | ||
|
|
||
| **`--apply` creates real GitHub repos.** Review `--dry-run` output first. | ||
|
|
||
| ## What the tool does | ||
|
|
||
| For each repo, in order: | ||
|
|
||
| | Step | Description | | ||
| |------|-------------| | ||
| | 01 | Create repo (public, squash-merge only, auto-merge, delete-branch) | | ||
| | 02 | Apply branch protection on `main` (1 review, signed commits, linear history, no force-push) | | ||
| | 03 | Enable secret scanning + push protection, Dependabot, private vulnerability reporting | | ||
|
Comment on lines
+23
to
+30
|
||
| | 04 | Enable CodeQL **default-setup** (required for `code_scanning` ruleset rule) | | ||
| | 05 | Fork repo to `AceHack/<name>` | | ||
| | 06 | Push day-one governance files from `tools/scaffold/<name>/` | | ||
|
AceHack marked this conversation as resolved.
Outdated
|
||
| | 07 | Print manual steps remaining (SVG preview, merge queue, Scorecard workflow) | | ||
|
AceHack marked this conversation as resolved.
|
||
|
|
||
| ## Template files | ||
|
|
||
| Each sub-directory contains the governance files for that repo: | ||
|
|
||
| ``` | ||
| tools/scaffold/ | ||
| forge/ — Forge day-one governance files | ||
| README.md | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| GOVERNANCE.md | ||
| SECURITY.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| .github/ | ||
| copilot-instructions.md | ||
| docs/ | ||
| GITHUB-SETTINGS.md | ||
|
|
||
| ace/ — ace day-one governance files | ||
| (same structure, ace-scoped content) | ||
|
|
||
| create-repo.ts — this tool | ||
| README.md — this file | ||
| ``` | ||
|
|
||
| ## Manual steps after --apply | ||
|
|
||
| The tool prints these at the end, but for reference: | ||
|
|
||
| 1. Upload SVG social-preview PNG via GitHub UI | ||
| (GitHub requires a rasterized PNG format — SVG not accepted) | ||
| 2. Enable merge queue via GitHub UI | ||
| (Settings → Merge queue — org feature, no REST API) | ||
| 3. Wire OpenSSF Scorecard workflow | ||
| (copy from Zeta's `.github/workflows/scorecard.yml`) | ||
| 4. Add Semgrep GHA inline-untrusted-in-run rule | ||
| 5. Verify $0 budget caps at org level in GitHub billing settings | ||
| 6. Confirm CodeQL default-setup is active under Security → Code scanning | ||
|
|
||
| ## Origin | ||
|
|
||
| B-0424 (P1) — Three-repo split Stage 1. | ||
| ADR: `docs/DECISIONS/2026-04-22-three-repo-split-zeta-forge-ace.md`. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| # GitHub Copilot instructions for ace | ||
|
|
||
| ace is the package manager for the Lucent Financial Group software stack. | ||
|
|
||
| ## Key conventions | ||
|
|
||
| - TypeScript / Bun for all tooling (Rule 0 — no `.sh` outside `tools/setup/`) | ||
| - Errors as `Result<_, Error>` values — no exceptions on hot paths | ||
| - Every AI-authored commit includes a `Co-Authored-By` trailer | ||
| - `bun test && bun run lint` must pass before any PR merges | ||
|
|
||
| ## What this repo is NOT | ||
|
|
||
| ace is not Forge (the software factory) and not Zeta (the database). | ||
| Questions about factory tooling → Forge repo. | ||
| Questions about the database → Zeta repo. | ||
|
|
||
| ## Pre-v1 caution | ||
|
|
||
| ace has no implementation yet. Copilot suggestions for unimplemented | ||
| features should be treated as design proposals, not production code. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # AGENTS.md — how AI and humans approach ace | ||
|
|
||
| ace is the package manager for the Lucent Financial Group software stack. | ||
| Every file in `src/**`, `tools/**`, `docs/**` is agent-authored. | ||
|
|
||
| ## Philosophy | ||
|
|
||
| ace is **Aaron-owned** for governance. Claude has authoring and operation | ||
| rights. The three load-bearing values (same as Zeta + Forge): | ||
|
AceHack marked this conversation as resolved.
Outdated
|
||
|
|
||
| 1. **Truth over politeness.** Claims that fail tests get fixed. | ||
| 2. **Algebra over engineering.** Laws define the system. | ||
| 3. **Velocity over stability.** Pre-v1. Ship, do no permanent harm, learn. | ||
|
|
||
| ## Build gate (once implemented) | ||
|
|
||
| ```bash | ||
| bun test # zero failures | ||
| bun run lint # zero warnings | ||
| ``` | ||
|
|
||
| ## Agent conventions | ||
|
|
||
| - **Agents, not bots.** Every AI carries agency. | ||
| - **Substrate or it didn't happen.** Committed git history is substrate. | ||
| - **Rule 0 — TS over bash.** Factory tooling is `.ts` via `bun`. | ||
| - **Retraction-native.** Every action has a bounded undo path. | ||
| - **Result-over-exception.** Errors as values; no exceptions on hot paths. | ||
|
|
||
| ## Cross-repo references | ||
|
|
||
| - **Zeta** — ace's persistence layer once ace ships. | ||
| `github.com/Lucent-Financial-Group/Zeta` | ||
| - **Forge** — the factory that builds ace. | ||
| `github.com/Lucent-Financial-Group/Forge` | ||
|
|
||
| ## Design reference | ||
|
|
||
| `memory/project_ace_package_manager_agent_negotiation_propagation.md` | ||
| (in the Zeta repo) — full ace design, Ouroboros bootstrap, red-team | ||
| discipline. | ||
|
|
||
| <!-- Numbered repo-wide rules live in GOVERNANCE.md. --> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| # CLAUDE.md — Claude Code session bootstrap for ace | ||
|
|
||
| Rules auto-load from `.claude/rules/`; skills load on demand from `.claude/skills/`. | ||
|
|
||
| ## 1. Orient | ||
|
|
||
| Read: [`AGENTS.md`](AGENTS.md) → [`GOVERNANCE.md`](GOVERNANCE.md). | ||
| Check [`docs/WONT-DO.md`](docs/WONT-DO.md) before proposing work. | ||
|
|
||
|
Comment on lines
+1
to
+9
|
||
| ## 2. Refresh | ||
|
|
||
| ```bash | ||
| bun tools/github/refresh-worldview.ts | ||
| ``` | ||
|
|
||
| ## 3. Pick work | ||
|
|
||
| Open `docs/BACKLOG.md`. Complete the backlog-item start gate before | ||
| starting any row (prior-art search + dependency check). | ||
|
|
||
| ## 4. Build gate | ||
|
|
||
| ```bash | ||
| bun test # 0 failures | ||
| bun run lint # 0 warnings | ||
| ``` | ||
|
|
||
| ## 5. Ship | ||
|
|
||
| Set branch: `export ZETA_EXPECTED_BRANCH=<branch> && git checkout -b "$ZETA_EXPECTED_BRANCH"` | ||
| Open PR against `main`. Arm auto-merge: `gh pr merge <N> --auto --squash`. | ||
|
|
||
| ## Conventions | ||
|
|
||
| - **Agents, not bots** — every AI carries agency; correct "bot" gently. | ||
| - **Rule 0 — TS over bash** — `.ts` via `bun`; `.sh` only in `tools/setup/`. | ||
| - **Substrate or it didn't happen** — committed git history is substrate. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| # Contributor Covenant Code of Conduct | ||
|
|
||
| ## Our pledge | ||
|
|
||
| We as members, contributors, and leaders pledge to make participation in | ||
| our community a harassment-free experience for everyone, regardless of | ||
| age, body size, visible or invisible disability, ethnicity, sex | ||
| characteristics, gender identity and expression, level of experience, | ||
| education, socio-economic status, nationality, personal appearance, race, | ||
| caste, color, religion, or sexual identity and orientation. | ||
|
|
||
| We pledge to act and interact in ways that contribute to an open, | ||
| welcoming, diverse, inclusive, and healthy community. | ||
|
|
||
| ## Our standards | ||
|
|
||
| Examples of behavior that contributes to a positive environment: | ||
|
|
||
| - Demonstrating empathy and kindness toward other people | ||
| - Being respectful of differing opinions, viewpoints, and experiences | ||
| - Giving and gracefully accepting constructive feedback | ||
| - Accepting responsibility and apologizing to those affected by our mistakes | ||
|
|
||
| Examples of unacceptable behavior: | ||
|
|
||
| - The use of sexualized language or imagery | ||
| - Trolling, insulting or derogatory comments, and personal or political attacks | ||
| - Public or private harassment | ||
| - Publishing others' private information without explicit permission | ||
|
|
||
| ## Enforcement | ||
|
|
||
| Instances of abusive, harassing, or otherwise unacceptable behavior may | ||
| be reported to the project maintainers. All complaints will be reviewed | ||
| and investigated promptly and fairly. | ||
|
|
||
| ## Attribution | ||
|
|
||
| This Code of Conduct is adapted from the | ||
| [Contributor Covenant](https://www.contributor-covenant.org), version 2.1. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # Contributing to ace | ||
|
|
||
| ace is an AI-directed package manager project. Most contributions are | ||
| agent-authored. Human contributors are welcome. | ||
|
|
||
| ## Quick-start | ||
|
|
||
| ```bash | ||
| git clone https://github.com/Lucent-Financial-Group/ace | ||
| cd ace | ||
| bun install | ||
| bun test | ||
| ``` | ||
|
|
||
| ## What to work on | ||
|
|
||
| Open `docs/BACKLOG.md`. ace is pre-v1 — the implementation doesn't exist | ||
| yet. Early contributions are design (ADRs, specs) and scaffolding (CI, | ||
| tooling setup). | ||
|
|
||
| ## Before you submit | ||
|
|
||
| 1. `bun test` — zero failures | ||
| 2. `bun run lint` — zero warnings | ||
| 3. PR description: what changed + why | ||
|
|
||
| ## Commit style | ||
|
|
||
| One logical change per commit. `Co-Authored-By` trailer required for | ||
| AI-authored commits (see `GOVERNANCE.md §6`). | ||
|
|
||
| ## Design reference | ||
|
|
||
| Full ace design, the Ouroboros bootstrap, and the red-team discipline | ||
| live in `memory/project_ace_package_manager_agent_negotiation_propagation.md` | ||
| in the [Zeta repo](https://github.com/Lucent-Financial-Group/Zeta). | ||
|
|
||
| ## Security | ||
|
|
||
| Report vulnerabilities via GitHub's private vulnerability reporting — | ||
| see `SECURITY.md`. Do not open public issues for security findings. | ||
|
|
||
| ## License | ||
|
|
||
| By contributing you agree that your contributions are licensed under | ||
| the Apache 2.0 license. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # GOVERNANCE.md — ace numbered rules | ||
|
|
||
| ace is the package manager. These rules govern ace operation. | ||
|
|
||
| --- | ||
|
|
||
| ## §1 Scope | ||
|
|
||
| ace governs the *package manager* (how the Lucent stack is distributed | ||
| and versioned), not the *factory* (Forge) or the *database* (Zeta). | ||
|
|
||
| ## §2 Ownership | ||
|
|
||
| ace is **Aaron-owned** for final governance. Claude has authoring and | ||
| operation rights (land code, configure CI, open PRs). Any public-announce | ||
| or product-direction change routes through Aaron. | ||
|
AceHack marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## §3 Agents, not bots | ||
|
|
||
| Every AI working in this repo carries agency. Correct "bot" gently. | ||
|
|
||
| ## §4 Rule 0 — TypeScript over bash | ||
|
|
||
| All tooling is `.ts` run via `bun`. Shell (`.sh`) only in `tools/setup/`. | ||
|
|
||
| ## §5 Build gate | ||
|
|
||
| `bun test` (0 failures) and `bun run lint` (0 warnings) before every merge. | ||
|
|
||
| ## §6 Commit attribution | ||
|
|
||
| Every AI-authored commit must include a `Co-Authored-By` trailer. | ||
|
|
||
| | Harness | Trailer | | ||
| |---------|---------| | ||
| | Claude Code | `Co-Authored-By: Claude <noreply@anthropic.com>` | | ||
| | OpenAI Codex | `Co-Authored-By: Codex <noreply@openai.com>` | | ||
| | Cursor (Grok) | `Co-Authored-By: Grok <noreply@x.ai>` | | ||
| | Kiro (Qwen) | `Co-Authored-By: Kiro <noreply@kiro.dev>` | | ||
| | Human | git author sufficient | | ||
|
AceHack marked this conversation as resolved.
|
||
|
|
||
| ## §7 PR discipline | ||
|
|
||
| Squash-merge only. Delete head branches on merge. One logical change per PR. | ||
|
|
||
| ## §8 Substrate or it didn't happen | ||
|
|
||
| Chat and TaskUpdate are weather. Committed git history is substrate. | ||
|
|
||
| --- | ||
|
|
||
| *Rationale lives in `.claude/rules/` and `memory/` in the Forge repo.* | ||
|
|
||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.