fix: Remove YAML usage, standardize on JSON/TOML

- Delete 5 legacy .formula.yaml files (have .toml replacements)
- Remove unused FileConfigYAML constant
- Add TODO for beads config.yaml → config.json migration (bd-10wg)
- Update docs to use JSON examples instead of yaml code blocks
- Change plugin frontmatter from YAML to TOML in docs
- Add .toml to code file detection in branch_check.go

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gastown/crew/gus
2026-01-01 11:18:09 -08:00
committed by Steve Yegge
parent cc3622117e
commit f75eeb4da8
12 changed files with 20 additions and 286 deletions

View File

@@ -109,7 +109,7 @@ const HQGitignore = `# Gas Town HQ .gitignore
# Explicitly track (override above patterns)
# =============================================================================
# Note: .beads/ has its own .gitignore that handles SQLite files
# and keeps issues.jsonl, metadata.json, config.yaml as source of truth
# and keeps issues.jsonl, metadata.json, config file as source of truth
`
func runGitInit(cmd *cobra.Command, args []string) error {

View File

@@ -70,9 +70,6 @@ const (
// FileConfigJSON is the general config file.
FileConfigJSON = "config.json"
// FileConfigYAML is the beads config file.
FileConfigYAML = "config.yaml"
// FileAccountsJSON is the accounts configuration file in mayor/.
FileAccountsJSON = "accounts.json"
)

View File

@@ -273,8 +273,9 @@ func (c *BeadsSyncOrphanCheck) Run(ctx *CheckContext) *CheckResult {
}
// Check if it's a code file
if strings.HasSuffix(f, ".go") || strings.HasSuffix(f, ".md") ||
strings.HasSuffix(f, ".toml") || strings.HasSuffix(f, ".json") ||
strings.HasSuffix(f, ".yaml") || strings.HasSuffix(f, ".yml") ||
strings.HasSuffix(f, ".json") || strings.HasSuffix(f, ".tmpl") {
strings.HasSuffix(f, ".tmpl") {
codeFiles = append(codeFiles, f)
}
}

View File

@@ -408,6 +408,7 @@ func (m *Manager) initAgentStates(rigPath string) error {
// initBeads initializes the beads database at rig level.
// The project's .beads/config.yaml determines sync-branch settings.
// Use `bd doctor --fix` in the project to configure sync-branch if needed.
// TODO(bd-yaml): beads config should migrate to JSON (see beads issue)
func (m *Manager) initBeads(rigPath, prefix string) error {
beadsDir := filepath.Join(rigPath, ".beads")
if err := os.MkdirAll(beadsDir, 0755); err != nil {
@@ -419,6 +420,7 @@ func (m *Manager) initBeads(rigPath, prefix string) error {
cmd.Dir = rigPath
if err := cmd.Run(); err != nil {
// bd might not be installed or --no-agents not supported, create minimal structure
// Note: beads currently expects YAML format for config
configPath := filepath.Join(beadsDir, "config.yaml")
configContent := fmt.Sprintf("prefix: %s\n", prefix)
if writeErr := os.WriteFile(configPath, []byte(configContent), 0644); writeErr != nil {
@@ -747,7 +749,7 @@ This directory contains town-level plugins that run during Deacon patrol cycles.
## Plugin Structure
Each plugin is a directory containing:
- plugin.md - Plugin definition with YAML frontmatter
- plugin.md - Plugin definition with TOML frontmatter
## Gate Types

View File

@@ -274,23 +274,16 @@ This sends handoff mail, respawns fresh. Your next instance picks up from your h
Your handoff state is tracked in a pinned bead: `witness Handoff`
```yaml
# Find with: bd list | grep "witness Handoff"
attached_molecule: mol-witness-patrol
attached_at: 2025-12-24T10:00:00Z
# Nudge escalation tracking
nudges:
toast:
count: 2
last: "2025-12-24T10:30:00Z"
ace:
count: 0
last: null
# Polecats queued for cleanup
pending_cleanup:
- nux # received POLECAT_DONE, awaiting verification
```json
{
"attached_molecule": "mol-witness-patrol",
"attached_at": "2025-12-24T10:00:00Z",
"nudges": {
"toast": {"count": 2, "last": "2025-12-24T10:30:00Z"},
"ace": {"count": 0, "last": null}
},
"pending_cleanup": ["nux"]
}
```
On startup, check for attached work: