Skip to content

Publish Lattice skill to Vercel skills ecosystem #1

@gmoon

Description

@gmoon

Summary

Publish the existing Lattice skill to the Vercel skills ecosystem so users can install it via npx skills add forkzero/lattice. This enables ~40 coding agents (Claude Code, Cursor, Cline, etc.) to discover and use Lattice.

Background

Lattice already has a well-formed skills/lattice/SKILL.md. The skills ecosystem discovers SKILL.md files in repos automatically — no registry signup needed. skills.sh auto-indexes public repos after first install. We just need to clean up the SKILL.md for external consumption.

Changes Required

1. Update skills/lattice/SKILL.md frontmatter

---
name: lattice
description: "Lattice knowledge graph integration. Use when working in a project with a .lattice/ directory — for requirements, theses, sources, implementations, drift detection, or lattice CLI commands."
license: Apache-2.0
compatibility: "Requires the lattice CLI. Install: curl -fsSL https://forkzero.ai/lattice/install.sh | sh"
allowed-tools: Bash(lattice *), Read, Grep, Glob
metadata:
  author: forkzero
  repository: "https://github.com/forkzero/lattice"
---

What changed:

  • Remove dev-only allowed-tools (Bash(./target/release/lattice *), Bash(./target/debug/lattice *)) — external users have lattice on PATH
  • Add license: Apache-2.0 (matches Cargo.toml)
  • Add compatibility field (spec-standard way to declare binary dependency)
  • Add metadata with author and repository (discovery on skills.sh)
  • Don't add metadata.version — it would drift from Cargo.toml and isn't worth the sync burden

2. Add Prerequisites section to SKILL.md body

Insert after the opening paragraph, before "## Quick Reference". This is the ecosystem-standard pattern for skills with binary dependencies — the agent reads these instructions and auto-installs if needed.

## Prerequisites

Before using lattice commands, verify the CLI is available:

\`\`\`bash
command -v lattice
\`\`\`

If `lattice` is not found, install it:

\`\`\`bash
curl -fsSL https://forkzero.ai/lattice/install.sh | sh
\`\`\`

After installation, verify with `lattice --version`. Check for updates with `lattice update --check`.

3. Update "Product Owner Agent" section in SKILL.md

Replace the current last section to explain how to install the agent after adding the skill:

## Product Owner Agent

For backlog triage, strategic critique, and planning work, use the **product-owner** agent (`/product-owner`). It manages the lattice as persistent working memory for product strategy.

To install the agent alongside this skill, run:

\`\`\`bash
lattice init --skill
\`\`\`

This copies the product-owner agent to `.claude/agents/product-owner.md`.

4. Add E2E test assertions (tests/docker/e2e-test.sh)

Add after existing SKILL.md assertions (line ~514):

assert_contains "$SKILL_CONTENT" "license: Apache-2.0" "SKILL.md: has license field"
assert_contains "$SKILL_CONTENT" "command -v lattice" "SKILL.md: has prerequisite check"
assert_contains "$SKILL_CONTENT" "forkzero.ai/lattice/install.sh" "SKILL.md: has install URL"

Explicitly Not Doing

  • Not making product-owner a second skill — it's an agent (has model, color frontmatter), not a skill. The formats are incompatible.
  • Not adding a scripts/ directory — body instructions are sufficient, avoids sync with deployed install.sh.
  • Not creating a separate repo — same repo keeps SKILL.md in sync with CLI.
  • Not changing src/main.rsinclude_str!("../skills/lattice/SKILL.md") auto-embeds updated content on next build.

Files Modified

File Changes
skills/lattice/SKILL.md Frontmatter cleanup, prerequisites section, product-owner install instructions
tests/docker/e2e-test.sh 3 new assertions for license, prereq check, install URL

Verification

  1. make pre-push — fmt, clippy, tests, build
  2. After push, test the full flow:
    cd /tmp/test-project && mkdir -p .lattice
    npx skills add forkzero/lattice
    cat .claude/skills/lattice/SKILL.md
  3. Check skills.sh for auto-indexing after first install

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions