Skip to content

feat: add k8s-pod-rightsizer skill, file_create tool, and skill metadata improvements#21

Merged
initializ-mk merged 5 commits intomainfrom
skills/k8s-podrightsize
Mar 4, 2026
Merged

feat: add k8s-pod-rightsizer skill, file_create tool, and skill metadata improvements#21
initializ-mk merged 5 commits intomainfrom
skills/k8s-podrightsize

Conversation

@initializ-mk
Copy link
Contributor

Summary

  • k8s-pod-rightsizer embedded skill — Analyzes Kubernetes workload metrics (Prometheus/metrics-server) and produces policy-constrained CPU/memory rightsizing recommendations with three modes: dry-run, plan, and apply (with rollback bundles)
  • file_create builtin tool — Creates downloadable files written to the agent's .forge/files/ directory (via FilesDir context injection), returning a path field so other tools like kubectl apply -f can reference them
  • Skill icons in SKILL.md frontmatter — Moved icon definitions from a hardcoded TUI map to the icon: field in each skill's SKILL.md, so adding a new embedded skill no longer requires touching forge-cli
  • Enforced category/tags on all embedded skills — All 11 skills now declare category and tags; tests enforce this for future additions
  • Slack file handling fix — Preserves raw content for typed files (JSON, YAML) instead of unwrapping them as markdown

Test plan

  • TestFileCreateTool — verifies path field, disk persistence, context-based directory, and fallback
  • TestEmbeddedRegistry_AllSkillsHaveIcons — ensures every skill declares an icon
  • TestEmbeddedRegistry_AllSkillsHaveCategoryAndTags — ensures every skill has category and tags
  • TestEmbeddedRegistry_DiscoverAll — verifies all 11 skills are discovered with correct metadata
  • All modules pass go test ./... and golangci-lint run
  • Documentation updated: docs/tools.md, docs/runtime.md, docs/skills.md

…er skill

- Add file_create builtin tool that writes files to disk and returns
  structured JSON with path for channel upload and cross-tool reference
- Files are written to the agent's .forge/files/ directory via FilesDir
  context value, with fallback to $TMPDIR/forge-files/
- Add FilesDir to LLMExecutorConfig and inject into execution context
- Fix Slack file extraction to preserve raw content for typed files
- Add k8s-pod-rightsizer embedded skill with apply workflow instructions
- Update docs for tools, runtime, and skills
Replace default cardboard box icon with skill-specific icons:
⚖️ k8s-pod-rightsizer, 🔬 tavily-research, 🔎 code-review,
📏 code-review-standards, ⚛️ codegen-react, 🌐 codegen-html
Add `icon` field to SkillMetadata and SkillDescriptor, flowing through
the parser → scanner → registry → TUI pipeline. Icons are now declared
in each skill's SKILL.md frontmatter (e.g. `icon: ⚖️`) and automatically
picked up via go:embed — no TUI code changes needed when adding skills.

The hardcoded skillIcon() map is replaced with a simple fallback that
returns 📦 for skills missing the field. A test ensures all embedded
skills declare an icon.
- github: category=developer, tags: github, issues, pull-requests, repositories
- tavily-research: category=research, tags: research, web-search, tavily, analysis
- tavily-search: category=research, tags: web-search, tavily, search
- weather: category=utilities, tags: weather, forecast, api

Add test to enforce all embedded skills declare category and tags.
- Add icon/category/tags to the SKILL.md format example
- Document all frontmatter fields in a table (icon, category, tags required)
- Add Icon column to Built-in Skills table, fill in all categories
- Fix parser path reference (forge-skills/parser/parser.go)
@initializ-mk initializ-mk merged commit 90a3bf0 into main Mar 4, 2026
9 checks passed
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