From tt-awesome
Guides contributors through submitting a new entry to the Awesome Tenstorrent list, gathering project details and offering GitHub issue, local JSON, or PR paths.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tt-awesome:add-projectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guides a contributor through submitting a new entry to the Awesome Tenstorrent list.
Guides a contributor through submitting a new entry to the Awesome Tenstorrent list. Three exit paths: file a GitHub issue, write JSON locally, or write JSON and open a PR.
The user invoked this with: $ARGUMENTS
If $ARGUMENTS contains a URL, treat it as the repo URL and skip that question.
If $ARGUMENTS contains a project name (non-URL text), pre-fill the name field.
Ask one question at a time in this order. Never ask multiple fields in one message.
For each optional field, ask only once — if the user says "skip", "none", or leaves it blank, move on.
Project name (required)
$ARGUMENTSRepo URL (required)
$ARGUMENTSDescription (required)
Categories (required, multi-select)
getting-started — Getting Startedai-models — AI & Modelsagents — AI Agentskernels — Custom Kernels & Low-Levelcompilers — Compilers & Frontendsdev-tools — Dev Tools & Debugginghw-system — Hardware & Systemcloud-infra — Cloud & Orchestrationriscv-arch — RISC-V & Architectureresearch — Research & Papersgames-demos — Games & Demosguides — Guides, Tutorials & EducationAffiliation (required)
community — not a Tenstorrent employeeaffiliated — Tenstorrent employee, personal capacityofficial — lives under the tenstorrent GitHub orgHardware tested (optional)
grayskull, wormhole, blackhole, quietbox, galaxy, ttsimTags (optional)
inference, llm, transformer — or skip)"Extra links (optional)
type | url | label — types: article, talk, video, website, demo, lesson, paper — or skip)"Author (optional)
After receiving a GitHub repo URL, run:
gh api repos/{owner}/{repo} --jq '{description:.description, language:.language, license:.license.spdx_id}'
owner and repo from the URL path.description, language, and license as pre-filled values.Derive the entry ID from the project name (not the repo name) — this matches how scripts/issue_to_entry.py derives the ID from the Name field, so Path A (issue) and Paths B/C (local JSON) produce the same ID:
-- into one-Show the proposed ID and let the user override it.
Note for Path A: The auto-generated PR from an approved issue derives its ID the same way — from the
Namefield — so the ID the contributor sees in the preview will match the final file.
Once all fields are gathered, render the complete JSON:
{
"id": "<id>",
"name": "<name>",
"description": "<description>",
"affiliation": "<affiliation>",
"categories": ["<primary>", ...],
"tags": [...],
"links": [
{ "type": "repo", "url": "<repo_url>" },
...extra links...
],
"hardware": [...],
"language": "<language>",
"license": "<license>",
"author": "<author>"
}
Omit optional fields (tags, hardware, language, license, author, extra links) if the user skipped them.
Ask: "Does this look right? Any fields to change?"
Loop — let the user request any edits — until they confirm. Then move to Phase 3.
Present the three options clearly:
A — File a GitHub issue (works for anyone — no local repo access needed)
A maintainer reviews and adds the approved label, which auto-creates a PR.
B — Write the JSON file locally (requires a local checkout of tt-awesome) Writes the file, validates it, and prints the git commands to open a PR yourself.
C — Write JSON + open PR automatically (requires push access to tt-awesome)
Does everything in B and then runs gh pr create for you.
Wait for the user to pick A, B, or C.
Construct the issue body in GitHub issue form format (each field as a ### Heading section):
### Name
{name}
### Description
{description}
### Affiliation
{affiliation}
### Repository URL
{repo_url}
### Additional Links
{extra_links or "_No response_"}
### Categories
{each selected category as "- [X] slug — Label" on its own line}
### Hardware
{each selected hardware as "- [X] slug" on its own line, or "_No response_" if none}
### Tags
{tags or "_No response_"}
### Author
{author or "_No response_"}
### Language
{language or "_No response_"}
### License
{license or "_No response_"}
Run:
gh issue create \
--repo tenstorrent/tt-awesome \
--title "[Entry] {name}" \
--label submission \
--body "{body}"
Report the issue URL. Remind the user that a maintainer needs to add the approved label before a PR is created automatically.
entries/{primary_category}/{id}.json with the confirmed JSON.python3 scripts/validate.py and show the output.Entry written to entries/{primary_category}/{id}.json
To open a PR:
git checkout -b entry/{id}
git add entries/{primary_category}/{id}.json
git commit -m "feat: add {name}"
gh pr create --title "feat: add {name}" --base main
entries/{primary_category}/{id}.json with the confirmed JSON.python3 scripts/validate.py. If it fails, show errors and loop back to Phase 2.git checkout -b entry/{id}
git add entries/{primary_category}/{id}.json
git commit -m "feat: add {name}"
gh pr create --title "feat: add {name}" --base main
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub tenstorrent/tt-awesome --plugin tt-awesome