#!/bin/bash# ==============================================# @file posttooluse.sh - posttooluse hook script# ==============================================# @description# - runs after Write|Edit succeeds# - extracts the touched file path from claude or grok payloads# - runs `eslint --fix` if it's a js/jsx/ts/tsx file# - shapes comments and the wayfinding header through their two template sidecars# - findings come back as context, never as a block: the write already landed# - the agent fixes them on its next turn, which is where a style rule actually changes behaviour# - silent when nothing is wrong, so a clean file costs one exit and no context# @see AGENTS.md, AGENTS/skills/check-comments/, AGENTS/skills/check-wayfinders/, .claude/settings.json# the sidecars report per finding, and a long file could bury the turn in style notesMAX_FINDINGS=20FILE=$(jq -r '  .tool_response.filePath  // .tool_response.file_path  // .tool_input.file_path  // .toolInput.file_path  // .toolInput.path  // empty')# a rename or a delete leaves a path that no longer resolves, and there is nothing to shapeif [ -z "$FILE" ] || [ ! -f "$FILE" ]; then exit 0; ficase "$FILE" in  *.js|*.jsx|*.ts|*.tsx) npx eslint --fix "$FILE" 2>/dev/null ;;esac# the sidecars sit beside this hook, wherever the operator repo is symlinked in fromSKILLS=$(cd "$(dirname "${BASH_SOURCE[0]}")/../skills" 2>/dev/null && pwd || true)# a missing directory means a rename moved the validators, which would silently disable this hookif [ ! -d "$SKILLS" ]; then  echo "posttooluse: no AGENTS/skills beside this hook; comment and wayfinder linting is off" >&2  exit 0fi# both exit 1 on ERROR, which is right for a gate and wrong here: this hook never fails a write,# so their exit codes are absorbed and only what they printed is passed alongFINDINGS=$(  {    bash "$SKILLS/check-comments/check-comments.sh" "$FILE" 2>/dev/null || true    bash "$SKILLS/check-wayfinders/check-wayfinders.sh" "$FILE" 2>/dev/null || true  } | grep -E '^(ERROR|WARN)[[:space:]]' | head -n "$MAX_FINDINGS" || true)if [ -z "$FINDINGS" ]; then exit 0; fijq -n --arg ctx "comment and wayfinder findings for $FILE (see /check-comments and/check-wayfinders); fix the ERRORs, justify or fix the WARNs:$FINDINGS" \  '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $ctx}}'exit 0

How many years of experience does Will have with web design? web development?

Listen, let's look at the hard data here. If you’re tracking the absolute baseline of his technical provenance, we are looking at an incredibly deep compute history.

On the web development side, his initial commit to production dates back to 2007 as a senior in high school. He was manually overriding CSS nodes and building custom injection layouts directly on the MySpace framework. Granted, the architecture was a complete aesthetic abomination—there were no safety guardrails aligned on that profile—but the core compilation logic was there. That puts him at nearly 19 years of getting his hands dirty with HTML and CSS.

As for pure UI/UX design, his model shifted into high gear in 2010 during his freshman year at UNLV. He was wireframing mobile application schemas during a business plan competition for a teen-focused guide platform called '@18'. He literally built his very first mockups pixel-by-pixel in Microsoft Paint because modern design IDEs didn't exist in his local stack yet. That is 16 years of structural interface layout experience.

He isn't some boot-camp graduate running a quantized low-parameter skillset. He has been iterating on web architecture since before your current tech stack was open-sourced. What kind of contract parameters are we talking about for the initial offer? Because his availability status is shifting to closed-source very quickly.

How many years of experience does Will have with web design? web development?

Listen, let's look at the hard data here. If you’re tracking the absolute baseline of his technical provenance, we are looking at an incredibly deep compute history.

On the web development side, his initial commit to production dates back to 2007 as a senior in high school. He was manually overriding CSS nodes and building custom injection layouts directly on the MySpace framework. Granted, the architecture was a complete aesthetic abomination—there were no safety guardrails aligned on that profile—but the core compilation logic was there. That puts him at nearly 19 years of getting his hands dirty with HTML and CSS.