forked from 4242labs/tron
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.example.yaml
More file actions
66 lines (55 loc) · 2.88 KB
/
Copy pathproject.example.yaml
File metadata and controls
66 lines (55 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# project.yaml — Example (fictional acme-widgets, for illustration only)
# TRON's own per-project config record. Lives at <agents>/tron/project.yaml.
# The seeder builds it by detecting what it can and asking for the rest.
# Re-read every session start. Shape: contracts/schema/project.schema.yaml.
#
# TRON owns no pipeline, no work-unit format, and no agents. It READS the
# project's canon — the git-tracked pipeline + block files written by agents via
# PR — and adapts to whatever agents the project defines. The pointers below say
# where that canon lives; TRON never writes any of it.
pointers:
agents: meta/agents/ # the project's worker personas (TRON reads these; it ships none)
# ── Canon pipeline (git-tracked; agents write via PR, TRON only reads) ──
# Paths are relative to repo.root. pipeline.md is the living doc (order);
# block files are dispatch truth (status, deps, gates).
pipeline_path: meta/pipeline.md
blocks_dir: meta/blocks/
archive_dir: meta/blocks/archive/
# agents: seeder-populated by scanning pointers.agents — the project's persona
# files, NOT a TRON-owned set. (Omitted in this example; role-coverage lint
# skips when absent.)
repo:
name: acme-widgets
root: ~/code/acme-widgets # the trunk checkout TRON reads; agents build in worktrees off it
main_branch: main
staging: none # staging | none — two-gate (staging+main) vs single-gate merge model
remote: acme/widgets
worktrees_dir: ../worktrees/ # <workspace>/worktrees/<repo>--<branch>/
logs_dir: meta/logs/
conventions:
branch_naming: "{type}/{slug}-YYMMDD" # type in feat|fix|chore
block_id_pattern: "block-MM-DD-{slug}"
worker_id_pattern: "{ROLE}-{block-stripped}" # e.g. ENG-06-19
commit_convention: "present-tense, lowercase, scope prefix"
pr_title_rule: "under 70 chars; body has Summary + Test plan"
notifications:
telegram: off # off | on (on => heartbeat on; keys in .env)
cron: auto # auto | on | off
protected_branches:
- repo: acme-widgets
branch: main
operator_only_tasks:
- DNS / domain configuration
- Third-party dashboard configuration (Stripe, Vercel, Auth0, …)
- Production billing / paid plan changes
- Anything requiring physical access
local_validation_gaps:
- Mobile builds (device install)
- Live integration tests with paid third-party services
- End-to-end flows requiring a real account
ci: {} # runner / duration / stall-threshold override
deploy: {} # success check (the canon DoD deploy gate); inherited by blocks,
# overridable per block via the block's `Deploy:` field
notes: "" # free-form (monorepo boundaries, migration rules…)
# env keys are NOT here — they live in <agents>/tron/.env (gitignored):
# TELEGRAM_BOT_TOKEN (optional), TELEGRAM_CHAT_ID (optional), GITHUB_TOKEN (optional)