Skip to content

feat(smith): implement connect/disconnect/update/status CLI with local bundled templates#9

Merged
nullhack merged 1 commit intomainfrom
feature/add-smith-commands
May 1, 2026
Merged

feat(smith): implement connect/disconnect/update/status CLI with local bundled templates#9
nullhack merged 1 commit intomainfrom
feature/add-smith-commands

Conversation

@nullhack
Copy link
Copy Markdown
Owner

@nullhack nullhack commented May 1, 2026

Summary

  • Implement smith CLI with connect, disconnect, update, status subcommands using argparse
  • Add BundledTemplateSource using importlib.resources (local package, no network required)
  • Add UrlTemplateSource with tar.gz/zip support via requests
  • Add LocalTemplateSource for local directory template sources
  • Implement granular agentic file filter (.opencode/agents/, .opencode/skills/, .opencode/knowledge/, .opencode/tools/) — excludes node_modules and other non-agentic content
  • Separate AGENTIC_FILE_PATTERNS (granular) from GITIGNORE_PATTERNS (broad: .opencode/)
  • Add --overwrite flag to connect command for replacing user-tracked files
  • Add --from flag for specifying template source (bundled:temple8, local path, or URL)
  • Replace print() with sys.stdout.write/sys.stderr.write in CLI (no # noqa: T201 needed)
  • Add docstrings to all public modules, classes, and methods
  • Use @pytest.mark.deprecated for deprecated BDD tests (a1b2c3d4, e5f6g7h8)
  • Remove @id: tags from test docstrings (IDs are already in function names)
  • Add URL source BDD examples (a2b3c4d5, e4f5g6h7)
  • Add scripts/update-bundle.sh for syncing smith/data/ from temple8
  • Add ADR-007 (local bundled template resolution), supersede ADR-006
  • 85 tests passing, ruff clean, pyright clean

Key decisions

  • ADR-007: Bundled template source uses importlib.resources to read from smith/data/ package — no network, no cache
  • Agentic filter is granular to exclude node_modules/package.json from bundles
  • requests is the only external runtime dependency (for URL source downloads)
  • Gitignore patterns remain broad (.opencode/) for ignoring entire directories

@nullhack nullhack force-pushed the feature/add-smith-commands branch from 02a14b0 to fddc77d Compare May 1, 2026 16:31
@nullhack nullhack merged commit f37c4ad into main May 1, 2026
5 of 7 checks passed
@nullhack nullhack deleted the feature/add-smith-commands branch May 1, 2026 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant