Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: CI (programs pilot)
on:
pull_request:
push:
branches: [ main ]
jobs:
scaffold-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Ensure scaffold exists
run: |
test -d programs/factory
test -d programs/master
test -d programs/bot
test -d tests
test -f README.md
test -f docs/OVERVIEW.md
test -f docs/IDS.md
test -f ops/RUNBOOK.md
32 changes: 15 additions & 17 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
# Generated by Cargo
# will have compiled files and executables
debug
target

# These are backup files generated by rustfmt
# Rust/Anchor
target/
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
# Node helpers (if any scripts appear)
node_modules/
dist/
build/

# Generated by cargo mutants
# Contains mutation testing data
**/mutants.out*/
# Env & secrets
.env
.env.*

# RustRover
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# OS / editor / logs
.DS_Store
.idea/
.vscode/
*.log
logs/
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @gapview01
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
# goblin-programs
Goblin Programs — core smart contracts for the Goblin ecosystem. Includes the Factory (create bots), Master (registry & global rules), and Bot (per-bot logic).
# Goblin Programs — Factory, Master, Bot
Core on-chain programs for the Goblin ecosystem.

- **Factory**: creates new Goblin bots with required setup (treasury, naming).
- **Master**: global registry & rules (fees, authority, pause).
- **Bot**: per-bot rulebook (sub-accounts, payouts).

**Bucket:** On-Chain Core (Solana)
**Status:** PILOT (DEV / devnet)

- Overview → /docs/OVERVIEW.md
- Program IDs → /docs/IDS.md
- Runbook → /ops/RUNBOOK.md
3 changes: 3 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Security Policy
- No secrets in this repo. Use cloud Secret Manager via CI.
- Report vulnerabilities to security@<yourdomain>.
18 changes: 18 additions & 0 deletions docs/IDS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Program IDs & Environments (record here)

DEV (devnet)
- factory: <TBD>
- master: <TBD>
- bot: <TBD>

STAGE (testnet)
- factory: <TBD>
- master: <TBD>
- bot: <TBD>

PROD (mainnet-beta)
- factory: <TBD>
- master: <TBD>
- bot: <TBD>

> Never reuse IDs across environments. Update after each deploy.
11 changes: 11 additions & 0 deletions docs/OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Overview
This repo houses the Goblin smart contracts (Anchor programs):

- Factory: "birth certificate office" for new bots.
- Master: "head office" that tracks all bots and global policy.
- Bot: the rules each bot uses day to day.

Day-1 scope:
- Devnet only (pilot)
- Empty program folders as placeholders
- Record IDs when deployed
14 changes: 14 additions & 0 deletions ops/RUNBOOK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Runbook (Pilot)

## Local (DEV)
1) Ensure Solana/Anchor toolchain is installed (no code yet).
2) Use devnet only during pilot.
3) When code arrives, build & test locally before any deploy.

## Environments
- DEV: devnet (sandbox)
- STAGE: testnet (rehearsal)
- PROD: mainnet-beta (not used during pilot)

## Rollback
- Revert to previous tag (e.g., pilot-v0.1.0) and redeploy to DEV.
Empty file added programs/bot/.gitkeep
Empty file.
Empty file added programs/factory/.gitkeep
Empty file.
Empty file added programs/master/.gitkeep
Empty file.
Empty file added tests/.gitkeep
Empty file.