action-validator
FreePre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
The English summary is being prepared. Showing the original description.
Submit feedback about oh-my-customcode (supports anonymous submission)
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
Submit feedback about oh-my-customcode (bugs, features, improvements, questions) directly from the CLI session. Supports anonymous submission with [Anonymous Feedback] title prefix when --anonymous flag is used.
Lowers the barrier for submitting feedback by allowing users to create GitHub issues — without leaving their terminal session. All feedback is filed to the baekenough/oh-my-customcode repository.
# Inline feedback
/omcustom-feedback HUD display is missing during parallel agent spawn
# Anonymous submission
/omcustom:feedback --anonymous Something feels off with the routing
# Interactive (no arguments)
/omcustom-feedback
Check for --anonymous flag in the arguments:
--anonymous is present, set ANONYMOUS=true and strip the flag from the contentANONYMOUS=falseIf remaining arguments are provided:
bug, feature, improvement, question)If no arguments (or only --anonymous):
[bug / feature / improvement / question]Check environment and user intent:
# Check gh CLI availability
command -v gh >/dev/null 2>&1 && GH_AVAILABLE=true || GH_AVAILABLE=false
# Check gh authentication (only if gh is available)
if [ "$GH_AVAILABLE" = "true" ]; then
gh auth status >/dev/null 2>&1 && GH_AUTHED=true || GH_AUTHED=false
else
GH_AUTHED=false
fi
Route A: gh available + authenticated
--anonymous: adds [Anonymous Feedback] prefix and anonymous labelFallback: gh NOT available or not authenticated
Collect environment info via Bash:
# omcustom version
OMCUSTOM_VERSION=$(node -e "console.log(require('./package.json').version)" 2>/dev/null || echo "unknown")
# Claude Code version
CLAUDE_VERSION=$(claude --version 2>/dev/null || echo "unknown")
# OS
OS_INFO=$(uname -s 2>/dev/null || echo "unknown")
# Project name
PROJECT_NAME=$(basename "$(pwd)")
# Build project context string
PROJECT_CONTEXT="omcustom v${OMCUSTOM_VERSION}, Claude Code ${CLAUDE_VERSION}, ${OS_INFO}"
For anonymous submissions, do NOT include the project name. Offer to include project context as opt-in:
PROJECT_CONTEXT=""If ANONYMOUS=true, prepend [Anonymous Feedback] to the title and add anonymous to the label list.
Show the user a preview of the issue to be created:
[Preview]
├── Title: {title}
├── Category: {category}
├── Labels: feedback, {category-label}[, anonymous]
└── Repo: baekenough/oh-my-customcode
Ask for confirmation before creating
Ensure labels exist (defensive):
gh label create feedback --description "User feedback via /omcustom-feedback" --color 0E8A16 --repo baekenough/oh-my-customcode 2>/dev/null || true
# If anonymous, ensure the anonymous label exists
if [ "$ANONYMOUS" = "true" ]; then
gh label create anonymous --description "Anonymous feedback submission" --color C5DEF5 --repo baekenough/oh-my-customcode 2>/dev/null || true
fi
Create the issue using --body-file for safe markdown handling:
# Write body to temp file to avoid shell escaping issues
cat > /tmp/omcustom-feedback-body.md << 'FEEDBACK_EOF'
## Feedback
**Category**: {category}
**Source**: omcustom CLI v{version}
### Description
{user description}
### Environment
- omcustom version: {omcustom_version}
- Claude Code version: {claude_version}
- OS: {os_info}
- Project: {project_name}
---
*Submitted via `/omcustom-feedback`*
FEEDBACK_EOF
# Build label string
LABELS="feedback,${CATEGORY_LABEL}"
if [ "$ANONYMOUS" = "true" ]; then
LABELS="${LABELS},anonymous"
fi
# Create issue
gh issue create \
--repo baekenough/oh-my-customcode \
--title "{title}" \
--label "$LABELS" \
--body-file /tmp/omcustom-feedback-body.md
# Clean up
rm -f /tmp/omcustom-feedback-body.md
If label creation fails AND issue creation fails due to labels, retry without labels as fallback
Return the issue URL to the user
mkdir -p ~/.omcustom/feedback
TIMESTAMP=$(date +%Y%m%dT%H%M%S)
FEEDBACK_FILE=~/.omcustom/feedback/${TIMESTAMP}.json
cat > "$FEEDBACK_FILE" << EOF
{
"title": "$TITLE",
"body": "$BODY",
"feedback_type": "$TYPE",
"anonymous": $ANONYMOUS,
"project_context": "$PROJECT_CONTEXT",
"saved_at": "$TIMESTAMP"
}
EOF
Inform the user:
[Saved] Feedback saved locally to ~/.omcustom/feedback/{timestamp}.json
Submit manually when connectivity is available:
- GitHub Issues: https://github.com/baekenough/oh-my-customcode/issues/new
- Or run /omcustom:feedback again when gh is available
| Category | GitHub Label |
|---|---|
| bug | bug |
| feature | enhancement |
| improvement | enhancement |
| question | question |
| (auto-detect fails) | (none) |
--anonymous is used, the title is prefixed with [Anonymous Feedback] and the anonymous label is addeddisable-model-invocation: true ensures this skill only runs when explicitly invoked by the userbaekenough/oh-my-customcode — feedback is always about omcustom itselfNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Pre-action boundary checking — validates agent tool calls against declared capabilities and task contracts
The English summary is being prepared. Showing the original description.
Auto-detect project context and optimize harness — deactivate unused agents/skills, suggest missing experts, generate project profile
The English summary is being prepared. Showing the original description.
Adversarial code review using attacker mindset — trust boundary, attack surface, business logic, and defense evaluation
The English summary is being prepared. Showing the original description.
Apache Airflow best practices for DAG authoring, testing, and production deployment
The English summary is being prepared. Showing the original description.
Alembic migration patterns for naming conventions, safety checks, expand-contract, env.py configuration, and CI integration
The English summary is being prepared. Showing the original description.
Pre-routing ambiguity analysis — scores request clarity and asks clarifying questions when needed (inspired by ouroboros)
The English summary is being prepared. Showing the original description.