Implements Tessl skill review GitHub Actions workflows in your repository through an interactive, configuration-first wizard.
Does it follow best practices?
Evaluation — 99%
↑ 1.24xAgent success when using this tile
Validation for skill structure
Implements Tessl skill review GitHub Actions workflows in your repository through an interactive, configuration-first wizard.
Use this skill when you want to:
This skill walks you through three phases:
TESSL_API_KEY to GitHub Secrets after setupSingle-Workflow (Recommended for internal repositories)
pull-requests: write permissionTwo-Workflow (Recommended for public repositories)
workflow_run trigger with secrets: inheritFirst, I'll check that we're in a valid git repository with a GitHub remote.
Actions:
git rev-parse --git-dir to verify git repositorygit remote -v to check for GitHub remoteError Messages:
git remote add origin <url>"Detect the repository's default branch from the GitHub remote.
Actions:
git remote show origin | grep 'HEAD branch' | cut -d' ' -f5git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'"main" with a warning: "⚠️ Could not detect default branch from remote. Defaulting to main."Store result in: DEFAULT_BRANCH variable (e.g., "main", "master", "develop")
Display: "Detected default branch: {DEFAULT_BRANCH}"
Scan for existing Tessl skill review workflows and detect their version.
Actions:
find .github/workflows -name '*tessl*skill*review*.yml' -o -name '*tessl*skill*review*.yaml' 2>/dev/nullCACHE_ENTRIES_FILE and PREV_SCORE--json and jq but no cachetessl skill review with markdown table*comment*.yml with workflow_runDetection Patterns:
grep -q "CACHE_ENTRIES_FILE" && grep -q "PREV_SCORE"grep -q "\-\-json" && grep -q "jq"grep -q "workflow_run"Show user what was found and offer appropriate path forward.
If no workflow found: "✅ No existing Tessl workflow detected. Ready to create a new one."
If v4 found: "✅ Found Tessl skill review workflow v4 (latest version).
Options: A) Keep existing workflow, skip to cache setup B) Recreate workflow (useful if you want to change architecture)
Which option?"
If v1-v3 found: "ℹ️ Found Tessl skill review workflow v{X}.
v4 adds:
Update to v4?"
If architecture mismatch: "ℹ️ Found {current} workflow. You selected {new} architecture.
Migrate from {current} to {new}?
Ask: "Which workflow architecture do you want?" (see Overview for details)
Options:
Store answer in: WORKFLOW_ARCH variable (values: "single" or "two")
Ask: "Use smart defaults, or customize settings?"
Current defaults:
{DEFAULT_BRANCH} (auto-detected from GitHub remote in Step 1.2)**/SKILL.md, **/skills/**.github/.tessl/skill-review-cache.jsonOptions:
Store answer in: CUSTOMIZE variable (values: "defaults" or "customize")
If user chose defaults: Set TARGET_BRANCH to {DEFAULT_BRANCH} (the value detected in Step 1.2), TRIGGER_PATHS to **/SKILL.md, **/skills/**, and CACHE_FILE to .github/.tessl/skill-review-cache.json. Skip to Step 2.4.
If user chose customize, ask follow-up questions:
Question 2.3a: Target Branch "Which branch should trigger workflow on push?"
{DEFAULT_BRANCH} (detected in Step 1.2)Question 2.3b: Trigger File Paths "Which file paths should trigger the workflow?"
**/SKILL.md, **/skills/**Question 2.3c: Cache File Location "Where should the cache file be stored?"
.github/.tessl/skill-review-cache.jsonStore in variables:
TARGET_BRANCH (default: {DEFAULT_BRANCH} from Step 1.2)TRIGGER_PATHS (default: "/SKILL.md', '/skills/**")CACHE_FILE (default: ".github/.tessl/skill-review-cache.json")Display configuration table and ask for approval:
📋 Configuration Summary
| Setting | Value |
|-------------------|------------------------------------------|
| Architecture | {Single/Two}-workflow |
| Target Branch | {TARGET_BRANCH} |
| Trigger Paths | {TRIGGER_PATHS} |
| Cache Location | {CACHE_FILE} |Question: "Proceed with this configuration?"
Options:
If "Go back", restart from Step 2.1
The skill uses these battle-tested workflow templates with all fixes from v4 testing.
These placeholders are replaced with user's configuration:
{{TARGET_BRANCH}} → User's target branch (default: auto-detected from GitHub remote){{TRIGGER_PATHS}} → User's file paths (default: **/SKILL.md, /skills/){{CACHE_FILE}} → User's cache location (default: .github/.tessl/skill-review-cache.json)File: .github/workflows/tessl-skill-review.yml
Source: ./single-workflow.md (lines 27-479)
Note: This template is used for internal repositories where all contributors are trusted. It includes both review and PR commenting in a single workflow.
During execution: Read the complete YAML from the source documentation file, perform template variable substitution, and write to the target workflow file.
File: .github/workflows/tessl-skill-review.yml
Source: ./two-workflow.md (lines 87-545)
Note: This is the main review workflow for public repositories. It performs skill reviews and saves results as artifacts for the comment workflow.
During execution: Read the complete YAML from the source documentation file, perform template variable substitution, and write to the target workflow file.
File: .github/workflows/tessl-skill-review-comment.yml
Source: ./two-workflow.md (lines 551-605)
Note: This workflow runs via workflow_run trigger to post PR comments. It inherits secrets securely for posting comments from untrusted forks.
During execution: Read the complete YAML from the source documentation file (no template substitution needed for this file), and write to the target workflow file.
When creating workflow files:
branches: [main] → branches: [{{TARGET_BRANCH}}]'**/SKILL.md' and '**/skills/**' → Replace with user's {{TRIGGER_PATHS}} (formatted as YAML array).github/.tessl/skill-review-cache.json → {{CACHE_FILE}}Interactive checklist with user confirmation at each step.
Actions:
Create workflow directory if needed:
mkdir -p .github/workflowsIf updating existing workflow, create backup:
BACKUP_DIR=".github/workflows/backup-$(date +%Y-%m-%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
mv .github/workflows/tessl-skill-review*.yml "$BACKUP_DIR/"Generate workflow file(s) from templates:
{{TARGET_BRANCH}} with user's branch{{TRIGGER_PATHS}} with user's paths (properly YAML-formatted){{CACHE_FILE}} with user's cache location.github/workflows/tessl-skill-review.yml.github/workflows/tessl-skill-review-comment.ymlConfirm with user:
✅ Workflow file(s) created:
- .github/workflows/tessl-skill-review.yml
{- .github/workflows/tessl-skill-review-comment.yml}
Continue to cache setup?Actions:
Check if cache file exists:
if [ -f "{{CACHE_FILE}}" ]; then
echo "Cache file already exists, skipping initialization"
else
# Create cache file
fiIf creating new cache:
# Create parent directory
mkdir -p "$(dirname "{{CACHE_FILE}}")"
# Create cache JSON
cat > "{{CACHE_FILE}}" << 'EOF'
{
"version": "1",
"last_updated": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")",
"skills": {}
}
EOFConfirm with user:
✅ Cache file initialized at: {{CACHE_FILE}}
Ready to proceed to API key reminder?Display:
⚠️ REQUIRED: Add TESSL_API_KEY to GitHub Secrets
Follow these steps:
1. Go to your repository on GitHub
2. Click: Settings → Secrets and variables → Actions
3. Click: "New repository secret"
4. Enter:
- Name: TESSL_API_KEY
- Value: <your Tessl API key from https://tessl.io>
5. Click: "Add secret"
The workflow will fail without this secret.
Ready to proceed to git operations?After all files are created, ask the user what git operations to perform.
Ask: "What would you like to do with these changes?"
Options:
A) Review changes first
git status outputgit diff .github/ outputB) Stage files
git add .github/workflows/tessl-skill-review*.ymlgit add {{CACHE_FILE}}C) Stage and commit
feat: add Tessl skill review workflow with score diff and cachingfeat: update Tessl skill review workflow to v4 with score diff and cachingfeat: migrate to {single/two}-workflow Tessl skill reviewgit commit -m "<message>"D) Stage, commit, and push
git pushE) Just show me the files, I'll handle git myself
Created files:
- .github/workflows/tessl-skill-review.yml
- {{CACHE_FILE}}
You can stage them with:
git add .github/workflows/tessl-skill-review*.yml {{CACHE_FILE}}git add <specific-files> not git add .After setup is complete, refer to TESTING.md for:
✅ Tessl skill review workflow setup complete!
What you have now:
Next steps:
Documentation:
Happy skill reviewing! 🎉
Install with Tessl CLI
npx tessl i tessl-labs/tessl-workflow-installerevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5