Deprecate hook files, use pinned beads for propulsion (gt-rgd9x)

Replace hook file mechanism with discovery-based pinned beads:
- gt hook: now runs bd update <bead> --status=pinned
- gt sling: same, plus nudge to target
- gt handoff: same when bead ID provided
- gt prime: checks pinned beads instead of hook files
- gt mol status: no longer checks hook files

Key changes:
- outputAttachmentStatus: extended to all roles (was Crew/Polecat only)
- checkSlungWork: now queries pinned beads instead of reading hook files
- wisp/io.go functions: marked deprecated with migration notes

This follows Gas Town discovery over explicit state principle.
Hook files are kept for backward compatibility but no longer written.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-26 15:54:07 -08:00
parent 2dcb3d9971
commit 8131052207
7 changed files with 126 additions and 179 deletions

View File

@@ -258,16 +258,8 @@ func runMoleculeStatus(cmd *cobra.Command, args []string) error {
HasWork: len(pinnedBeads) > 0,
}
// Also check for wisp hook files (from gt hook/sling/handoff)
// These are stored at the git clone root, not the beads dir
gitRoot, _ := getGitRootForMolStatus()
if gitRoot != "" {
sw, err := wisp.ReadHook(gitRoot, target)
if err == nil && sw != nil {
status.SlungWork = sw
status.HasWork = true
}
}
// Note: Hook files are deprecated. Work is now tracked via pinned beads only.
// The SlungWork field is kept for backward compatibility but will be nil.
if len(pinnedBeads) > 0 {
// Take the first pinned bead (agents typically have one pinned bead)