34 Commits

Author SHA1 Message Date
Vince Lozada 732ab95906 security: address HIGH/MEDIUM findings from skills.sh audit (#35)
* security: address HIGH/MEDIUM findings from skills.sh audit

- Remove eval from mr-review-workflow.sh; add command allowlist
- Replace direct config file parsing with glab auth token in add-inline-comment.sh
- Add external content boundary markers to create-mr-from-issue.sh and ci-debug.sh
- Add private key upload warning to glab-ssh-key/SKILL.md
- Add prompt injection warnings to glab-api, glab-ci, glab-job SKILL.md files
- Add SECURITY.md with full security policy and guidance

Fixes #34

* chore: exclude SECURITY.md from zip export

---------

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.8.0
2026-03-04 19:41:38 -06:00
Ubuntu dbc300dd8f fix: lowercase skill name to satisfy Claude.ai naming constraint
Claude.ai requires skill names to contain only lowercase letters,
numbers, and hyphens. 'GitLab CLI Skills' → 'gitlab-cli-skills'

This constraint was not documented on the support page — discovered
via upload error.
v1.7.1
2026-03-03 16:19:04 +00:00
Vince Lozada 276a2a045a feat: add build-claude-skill.sh for Claude.ai integration (#33)
* feat: add build-claude-skill.sh for Claude.ai integration

Closes #32

Claude.ai organization skill upload requires a zip containing exactly
one SKILL.md. The existing release zip contains 38 SKILL.md files
(one per sub-skill), causing an upload error.

Changes:
- scripts/build-claude-skill.sh: merges all sub-skill SKILL.md files
  into a single consolidated SKILL.md, strips OpenClaw YAML frontmatter,
  and packages the result into claude-skill.zip
- README.md: documents Claude.ai installation via pre-built zip download
  or running the build script locally
- .gitignore: excludes claude-skill.zip (build artifact)

* fix: correct ZIP structure and add required YAML frontmatter

Per Claude.ai skill spec (support.claude.com):
- ZIP must contain files inside a subdirectory, not at the root:
    claude-skill.zip/gitlab-cli-skills/SKILL.md  ✅
    claude-skill.zip/SKILL.md                     ❌
- SKILL.md must start with YAML frontmatter containing
  'name' and 'description' fields (required by Claude.ai
  to decide when to invoke the skill)

Previously the script stripped all frontmatter and placed
SKILL.md directly in the zip root — both violations of spec.

---------

Co-authored-by: Ubuntu <ubuntu@vps-9755df38.vps.ovh.us>
v1.7.0
2026-03-03 10:16:00 -06:00
Vince Lozada efabfbcf8a feat: document JSON body pattern for inline MR diff comments (#31)
* feat: document JSON body pattern for inline MR comments + add post-inline-comment.py script

glab api --field silently falls back to general comments when GitLab
rejects position data (common with new files, encoded paths). Fix is
to use Python urllib with Content-Type: application/json.

- glab-mr: new 'Posting Inline Comments on MR Diffs' section with
  full code example, line number parsing helper, and batch script usage
- scripts/post-inline-comment.py: reusable script supporting single
  and batch comment posting; auto-reads token from glab config;
  reports inline vs general fallback per comment

Closes #28

* security: harden post-inline-comment.py + add openclaw.requires metadata

Security fixes before ClawHub publish:
- Enforce HTTPS-only for --host (prevents token leakage over HTTP)
- Validate --project path format with regex
- Validate --file path (no null bytes or newlines)
- Cap --body at 10,000 chars with truncation warning
- Validate --line is a positive integer
- Batch file size limit (1MB) and count limit (100 comments)
- Validate token is non-empty and whitespace-free before first API call
- Fetch token after input validation (avoids credential access on bad input)
- Explicit SSL context on all urllib calls (strict CA verification)
- Error body truncated in exception messages (prevents token reflection)

Root SKILL.md: add openclaw.requires block declaring:
- GITLAB_TOKEN credential (optional, falls back to glab config)
- Outbound HTTPS network access scope
- Write-access warning (comments, thread resolution, MR approval)

---------

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.6.0
2026-03-03 09:57:31 -06:00
Vince Lozada 73b8919c0a feat: update skills for glab v1.86.0 and v1.87.0 (#28) (#29)
## v1.86.0 Updates
- glab-mcp: Document auto-enabled JSON output and unannotated command exclusion
- glab-config: Document new per-host HTTPS proxy configuration

## v1.87.0 Updates
- glab-duo: Add binary download management (glab duo update)
- glab-mr: Document new glab mr list flags (author, source/target branch,
  draft, label exclusion, order/sort, date range, search)
- glab-runner-controller: Add runner scope subcommands (create, delete, list)

## New Sub-Skills
- glab-runner: Runner management commands (list, pause, delete)
- glab-workitems: Work items list command (tasks, OKRs, key results, epics)

## Root SKILL.md
- Added glab-runner and glab-workitems to skill organization index

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.5.0
2026-03-02 13:32:45 -06:00
Vince Lozada 06042234cb Add inline comment automation for MR code reviews (#27)
* Add inline comment automation script

- Add glab-add-inline-comment.sh for posting inline MR comments
- Posts comments at specific file:line locations via GitLab API
- Auto-extracts token and fetches MR metadata
- Validates inline placement (DiffNote type)
- Add comprehensive documentation (README-inline-comments.md)
- Update scripts/README.md with new script listing

Closes #26

* Rename script: glab-add-inline-comment.sh → add-inline-comment.sh

Drop glab- prefix per review feedback.

- Rename scripts/glab-add-inline-comment.sh to scripts/add-inline-comment.sh
- Update all references in documentation (README.md, README-inline-comments.md)
- Update usage examples and command names

---------

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.4.0
2026-02-23 16:50:48 -06:00
Vince Lozada 78b9bf522d Enhancement: Add pipeline best practices, templates, and advanced troubleshooting (#25)
Phase 1: Pipeline Best Practices
- Created glab-ci/references/pipeline-best-practices.md (12KB)
- Comprehensive guide covering:
  * Caching strategies (node_modules, lockfile-based, per-job)
  * Multi-stage pipeline patterns (sequential, parallel, artifacts)
  * Coverage reporting integration (Jest, Vitest, badges)
  * Security scanning (npm audit, SAST, secret detection, Docker)
  * Common patterns (matrix builds, conditional jobs, retries)
  * Performance optimization (fail fast, parallelization, caching)
  * Environment-specific configurations (variables, review apps)

Phase 2: Pipeline Templates
- Created glab-ci/templates/ directory with 3 production-ready templates:
  * nodejs-basic.yml - Simple Node.js CI/CD pipeline
  * nodejs-multistage.yml - Multi-environment (staging + production)
  * docker-build.yml - Docker build, test, scan, and deploy
- Created templates/README.md with:
  * Usage instructions and validation steps
  * Customization tips for different package managers
  * Environment variable configuration guide
  * Template comparison matrix
  * Advanced patterns (monorepo, matrix builds, schedules)
  * Troubleshooting common template issues

Phase 3: Enhanced Troubleshooting
- Expanded glab-ci/SKILL.md troubleshooting section:
  * Runtime issues (stuck pipelines, job failures)
  * Configuration issues (cache, job ordering, slow builds, artifacts, coverage)
  * Performance optimization workflow (identify, analyze, optimize, validate)
- Added 'Pipeline Configuration' section with:
  * References to templates directory
  * Link to best practices guide
  * Validation examples
- Updated 'Related Skills' section with new resource links

Total additions: ~22KB of documentation
Borrowed best ideas from ClawHub cicd-pipeline-generator skill
Fills gap between 'how to use glab ci' and 'how to write good .gitlab-ci.yml'
Target version: v1.3.0
Expected score: 9.8/10 (up from 9.5/10)

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.3.0
2026-02-15 14:00:34 -06:00
Vince Lozada d6802b4f27 Fix glab-mcp: Correct description to Model Context Protocol (#24)
- Fixed description: 'Managed Cluster Platform' → 'Model Context Protocol'
- MCP = AI assistant integration server, not cluster management
- Updated root SKILL.md: Added (EXPERIMENTAL) flag to glab-mcp entry
- Updated help output wording in references/commands.md to match glab 1.85.0
- Changed experimental notice: 'might be broken' → 'not ready for production use'

Fixes #23 - glab-mcp had completely wrong description causing
discoverability issues for users searching for Model Context Protocol
or AI assistant integration features.

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.2.2
2026-02-13 08:32:24 -06:00
Vince Lozada 1eff1ffee1 Add requirements metadata to resolve ClawHub security flag (#22)
- Declare required binary: glab
- Declare optional binary: cosign (for attestation features)
- Add notes about GitLab authentication requirements
- Document potential sensitive file access (SSH keys, Docker config)

Fixes #21 - ClawHub was flagging skill as suspicious due to
mismatch between claimed requirements (none) and actual
requirements/sensitive file access. This update provides
transparency about what the skill needs and accesses.

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.2.1
2026-02-12 21:42:26 -06:00
Vince Lozada ce8ccb83a1 Add glab-runner-controller skill for v1.83.0 (#20)
Fixes #19

Added support for new runner-controller command set introduced in glab v1.83.0.

Changes:
- Created glab-runner-controller sub-skill (EXPERIMENTAL, admin-only feature)
- SKILL.md includes workflows for controller + token management
- references/commands.md includes all 8 command help outputs
- Updated root SKILL.md to reference new sub-skill

Features covered:
- Controller management: create, list, update, delete
- Token lifecycle: create, list, rotate, revoke
- Security best practices for token management
- Troubleshooting for common issues
- Decision tree for controller state selection

Commands included:
- glab runner-controller create
- glab runner-controller delete
- glab runner-controller list
- glab runner-controller update
- glab runner-controller token create
- glab runner-controller token list
- glab runner-controller token rotate
- glab runner-controller token revoke

Documentation highlights:
- Experimental feature warning (may be removed without notice)
- Admin-only requirement clearly stated
- Token security best practices (rotation, revocation)
- Complete workflow examples
- Cross-links to related skills (glab-ci, glab-job)

Co-authored-by: Steven (Bot) <steven@winkintel.com>
v1.2.0
2026-02-12 11:10:43 -06:00
Vince Lozada bc8150961d Remove RELEASE_NOTES_BEST_PRACTICE.md per skill-creator guide (#18)
Per OpenClaw skill-creator guide:
> A skill should only contain essential files that directly support
> its functionality. Do NOT create extraneous documentation or
> auxiliary files.

RELEASE_NOTES_BEST_PRACTICE.md contained development process notes
not needed for AI agent skill functionality.

Kept README.md for GitHub repository UI display.

Closes #17

Co-authored-by: Ubuntu <ubuntu@vps-9755df38.vps.ovh.us>
v1.1.0
2026-02-11 23:20:42 -06:00
Vince Lozada 860875f9c1 Phase 3: Add decision trees and cross-linking (#16)
- Added decision trees to root skill:
  * "Should I create an MR or work on an issue first?"
  * "Which CI command should I use?" (pipeline vs job level)
  * "Clone or fork?" (access and use case guidance)
  * "Project vs group labels?" (scope decision tree)
- Enhanced glab-label with decision tree and workflows
- Enhanced glab-job with pipeline vs job decision tree
- Added "Related Skills" sections to all major skills:
  * glab-mr → glab-issue, glab-ci, scripts
  * glab-issue → glab-mr, glab-label, glab-milestone, glab-iteration, scripts
  * glab-ci → glab-job, glab-schedule, glab-variable, glab-mr, scripts
  * glab-repo → glab-auth, glab-ssh-key, glab-deploy-key, glab-config, glab-variable, scripts
  * glab-auth → glab-config, glab-ssh-key, glab-gpg-key, glab-repo
  * glab-label → glab-issue, glab-mr, scripts
  * glab-job → glab-ci, glab-variable, glab-schedule, scripts
- All cross-references include relevant automation scripts

Addresses #15 Phase 3 objectives:
✅ Root skill enhanced with decision trees and navigation
✅ 4+ decision trees added to guide command selection
✅ Cross-links added between related skills
✅ "Related Skills" sections improve discoverability
✅ Decision trees provide actionable guidance

Improvements:
- Better skill discovery through cross-linking
- Decision trees reduce "which command?" confusion
- Clear guidance on pipeline vs job, clone vs fork, project vs group labels
- Scripts referenced in related skills for automation opportunities

Co-authored-by: Ubuntu <ubuntu@vps-9755df38.vps.ovh.us>
2026-02-11 23:08:36 -06:00
Vince Lozada c29467a0e7 Phase 2: Add scripts, TOCs, and troubleshooting (#14)
- Added 5 high-value automation scripts:
  * mr-review-workflow.sh - Automated MR review with tests
  * create-mr-from-issue.sh - Create branch + draft MR from issue
  * ci-debug.sh - Debug CI failures (find failed jobs + logs)
  * batch-label-issues.sh - Apply labels to multiple issues
  * sync-fork.sh - Sync fork with upstream
- Created scripts/README.md with usage documentation
- Added TOC to glab-mr/references/commands.md (656 lines)
- Updated SKILL.md files to reference relevant scripts
- Added troubleshooting sections to:
  * glab-mr: merge conflicts, approval issues, pipeline problems
  * glab-repo: clone failures, fork issues, transfer problems
  * (glab-auth and glab-ci already had troubleshooting from Phase 1)

Addresses #13 Phase 2 objectives:
✅ 5 high-value scripts created and documented
✅ TOC added to long reference file (>100 lines)
✅ Troubleshooting sections added to top 5 skills
✅ Scripts follow OpenClaw patterns (token-efficient, deterministic)
✅ All scripts executable and well-documented

Token efficiency improvements:
- Scripts execute without loading into context
- Only script output consumes tokens
- Reduces need to regenerate same code repeatedly
- Better navigability via TOC in reference docs

Co-authored-by: Ubuntu <ubuntu@vps-9755df38.vps.ovh.us>
2026-02-11 22:51:20 -06:00
Vince Lozada 09862709d9 Phase 1: Improve descriptions and add workflows (#12)
- Enhanced all skill descriptions with specific triggers and use cases
- Removed duplicate help output from top 5 skill bodies (mr, issue, ci, auth, repo)
- Added actionable workflow sections with real-world examples
- Improved root skill (gitlab-cli-skills) with better organization and common workflows
- Reduced token consumption by ~60-70% in updated skills
- Better alignment with OpenClaw progressive disclosure pattern

Addresses #11 Phase 1 objectives:
✅ All skill descriptions enhanced with triggers
✅ Duplicate content removed from SKILL.md files
✅ Workflows added to: glab-mr, glab-issue, glab-ci, glab-auth, glab-repo
✅ Root skill improved with navigation and common workflows

Skills now follow OpenClaw patterns:
- YAML frontmatter includes triggers
- Progressive disclosure (workflows in SKILL.md, details in references/)
- Concise, actionable content focused on procedural knowledge

Co-authored-by: Ubuntu <ubuntu@vps-9755df38.vps.ovh.us>
2026-02-11 22:47:01 -06:00
Vince Lozada e5cda63b9b Merge pull request #10 from vince-winkintel/9-fix-graphql-json-formatting
Fix GraphQL formatting in glab-api examples
v1.0.3 v1.0.4
2026-02-09 21:58:25 -06:00
Ubuntu 21ea53e1f9 Fix GraphQL formatting in glab-api examples
- Properly indent GraphQL queries with 2-space indentation per level
- Improves readability for both humans and bots
- Queries remain functionally identical (whitespace-only changes)

Fixes #9
2026-02-10 03:48:49 +00:00
Vince Lozada 249b006ae0 Merge pull request #8 from vince-winkintel/bug/exclude-gitattributes
Exclude .gitattributes from exports
v1.0.2
2026-01-30 16:15:47 -06:00
Ubuntu fdf47e3023 Exclude .gitattributes from release archives 2026-01-30 22:14:06 +00:00
Vince Lozada 7187b20c11 Merge pull request #6 from vince-winkintel/bug/add-root-skill-md
Add root SKILL.md
v1.0.1
2026-01-30 16:10:07 -06:00
Ubuntu 12da78faa3 Add root SKILL.md 2026-01-30 22:08:40 +00:00
Vince Lozada 637730f0ff Merge pull request #4 from vince-winkintel/feature/glab-all-commands
Add skills for all remaining glab commands
v1.0.0
2026-01-30 16:01:49 -06:00
Ubuntu 58a43c15d8 Add Homebrew install instructions 2026-01-30 22:00:19 +00:00
Ubuntu 04f395bf45 List all glab skills in README 2026-01-30 21:58:12 +00:00
Ubuntu 257e1a668c Remove redundant commands.md for commands without subcommands 2026-01-30 21:56:09 +00:00
Ubuntu 492ea246b9 Include glab command help output in SKILL overviews 2026-01-30 21:50:19 +00:00
Ubuntu c90c347ee2 Add skills for remaining glab commands 2026-01-30 21:45:25 +00:00
Vince Lozada 35fa954175 Merge pull request #2 from vince-winkintel/feature/glab-auth-skill
Add glab auth skill
v0.1.0
2026-01-30 15:31:18 -06:00
Ubuntu a0e381d01f Include glab auth subcommand help output 2026-01-30 21:28:04 +00:00
Ubuntu 4b5cf4b4e5 Add release notes best practice file 2026-01-30 21:14:19 +00:00
Ubuntu c02c572a93 Align gitignore and gitattributes with sendgrid-skills 2026-01-30 21:11:36 +00:00
Ubuntu b650c1ab27 Update README ASCII banner 2026-01-30 21:04:36 +00:00
Ubuntu 9bf3a380eb Add root README overview 2026-01-30 21:01:56 +00:00
Ubuntu 002407c79f Add glab auth skill 2026-01-30 20:53:21 +00:00
Vince Lozada b275dc5d24 Initial commit 2026-01-30 14:43:52 -06:00