Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .agents/skills/gstack-browse/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,34 +14,34 @@ description: |
## Preamble (run first)

```bash
_UPD=$(~/.codex/skills/gstack/bin/gstack-update-check 2>/dev/null || .agents/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
_UPD=$($([ -x .agents/skills/gstack/bin/gstack-update-check ] && echo .agents/skills/gstack/bin/gstack-update-check || echo ~/.codex/skills/gstack/bin/gstack-update-check) 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true
_CONTRIB=$(~/.codex/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$(~/.codex/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true")
_CONTRIB=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get proactive 2>/dev/null || echo "true")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"
echo "PROACTIVE: $_PROACTIVE"
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
echo "LAKE_INTRO: $_LAKE_SEEN"
_TEL=$(~/.codex/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
_TEL=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get telemetry 2>/dev/null || true)
_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
echo "TELEMETRY: ${_TEL:-off}"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
mkdir -p ~/.gstack/analytics
echo '{"skill":"browse","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
for _PF in ~/.gstack/analytics/.pending-*; do [ -f "$_PF" ] && ~/.codex/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
for _PF in ~/.gstack/analytics/.pending-*; do [ -f "$_PF" ] && $([ -x .agents/skills/gstack/bin/gstack-telemetry-log ] && echo .agents/skills/gstack/bin/gstack-telemetry-log || echo ~/.codex/skills/gstack/bin/gstack-telemetry-log) --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
```

If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills — only invoke
them when the user explicitly asks. The user opted out of proactive suggestions.

If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.codex/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `$([ -f .agents/skills/gstack-upgrade/SKILL.md ] && echo .agents/skills/gstack-upgrade/SKILL.md || echo ~/.codex/skills/gstack/gstack-upgrade/SKILL.md)` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.

If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle.
Tell the user: "gstack follows the **Boil the Lake** principle — always do the complete
Expand All @@ -67,7 +67,7 @@ Options:
- A) Help gstack get better! (recommended)
- B) No thanks

If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
If A: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry community`

If B: ask a follow-up AskUserQuestion:

Expand All @@ -78,8 +78,8 @@ Options:
- A) Sure, anonymous is fine
- B) No thanks, fully off

If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
If B→A: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry anonymous`
If B→B: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry off`

Always run:
```bash
Expand Down Expand Up @@ -205,7 +205,7 @@ Run this bash:
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - _TEL_START ))
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
~/.codex/skills/gstack/bin/gstack-telemetry-log \
$([ -x .agents/skills/gstack/bin/gstack-telemetry-log ] && echo .agents/skills/gstack/bin/gstack-telemetry-log || echo ~/.codex/skills/gstack/bin/gstack-telemetry-log) \
--skill "SKILL_NAME" --duration "$_TEL_DUR" --outcome "OUTCOME" \
--used-browse "USED_BROWSE" --session-id "$_SESSION_ID" 2>/dev/null &
```
Expand Down
22 changes: 11 additions & 11 deletions .agents/skills/gstack-design-consultation/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@ description: |
## Preamble (run first)

```bash
_UPD=$(~/.codex/skills/gstack/bin/gstack-update-check 2>/dev/null || .agents/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
_UPD=$($([ -x .agents/skills/gstack/bin/gstack-update-check ] && echo .agents/skills/gstack/bin/gstack-update-check || echo ~/.codex/skills/gstack/bin/gstack-update-check) 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true
_CONTRIB=$(~/.codex/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$(~/.codex/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true")
_CONTRIB=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get proactive 2>/dev/null || echo "true")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"
echo "PROACTIVE: $_PROACTIVE"
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
echo "LAKE_INTRO: $_LAKE_SEEN"
_TEL=$(~/.codex/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
_TEL=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get telemetry 2>/dev/null || true)
_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
echo "TELEMETRY: ${_TEL:-off}"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
mkdir -p ~/.gstack/analytics
echo '{"skill":"design-consultation","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
for _PF in ~/.gstack/analytics/.pending-*; do [ -f "$_PF" ] && ~/.codex/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
for _PF in ~/.gstack/analytics/.pending-*; do [ -f "$_PF" ] && $([ -x .agents/skills/gstack/bin/gstack-telemetry-log ] && echo .agents/skills/gstack/bin/gstack-telemetry-log || echo ~/.codex/skills/gstack/bin/gstack-telemetry-log) --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
```

If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills — only invoke
them when the user explicitly asks. The user opted out of proactive suggestions.

If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.codex/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `$([ -f .agents/skills/gstack-upgrade/SKILL.md ] && echo .agents/skills/gstack-upgrade/SKILL.md || echo ~/.codex/skills/gstack/gstack-upgrade/SKILL.md)` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.

If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle.
Tell the user: "gstack follows the **Boil the Lake** principle — always do the complete
Expand All @@ -68,7 +68,7 @@ Options:
- A) Help gstack get better! (recommended)
- B) No thanks

If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
If A: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry community`

If B: ask a follow-up AskUserQuestion:

Expand All @@ -79,8 +79,8 @@ Options:
- A) Sure, anonymous is fine
- B) No thanks, fully off

If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
If B→A: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry anonymous`
If B→B: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry off`

Always run:
```bash
Expand Down Expand Up @@ -206,7 +206,7 @@ Run this bash:
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - _TEL_START ))
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
~/.codex/skills/gstack/bin/gstack-telemetry-log \
$([ -x .agents/skills/gstack/bin/gstack-telemetry-log ] && echo .agents/skills/gstack/bin/gstack-telemetry-log || echo ~/.codex/skills/gstack/bin/gstack-telemetry-log) \
--skill "SKILL_NAME" --duration "$_TEL_DUR" --outcome "OUTCOME" \
--used-browse "USED_BROWSE" --session-id "$_SESSION_ID" 2>/dev/null &
```
Expand Down Expand Up @@ -246,7 +246,7 @@ ls src/ app/ pages/ components/ 2>/dev/null | head -30
Look for office-hours output:

```bash
source <(~/.codex/skills/gstack/bin/gstack-slug 2>/dev/null)
source <($([ -x .agents/skills/gstack/bin/gstack-slug ] && echo .agents/skills/gstack/bin/gstack-slug || echo ~/.codex/skills/gstack/bin/gstack-slug) 2>/dev/null)
ls ~/.gstack/projects/$SLUG/*office-hours* 2>/dev/null | head -5
ls .context/*office-hours* .context/attachments/*office-hours* 2>/dev/null | head -5
```
Expand Down
24 changes: 12 additions & 12 deletions .agents/skills/gstack-design-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@ description: |
## Preamble (run first)

```bash
_UPD=$(~/.codex/skills/gstack/bin/gstack-update-check 2>/dev/null || .agents/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
_UPD=$($([ -x .agents/skills/gstack/bin/gstack-update-check ] && echo .agents/skills/gstack/bin/gstack-update-check || echo ~/.codex/skills/gstack/bin/gstack-update-check) 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true
_CONTRIB=$(~/.codex/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$(~/.codex/skills/gstack/bin/gstack-config get proactive 2>/dev/null || echo "true")
_CONTRIB=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get gstack_contributor 2>/dev/null || true)
_PROACTIVE=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get proactive 2>/dev/null || echo "true")
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"
echo "PROACTIVE: $_PROACTIVE"
_LAKE_SEEN=$([ -f ~/.gstack/.completeness-intro-seen ] && echo "yes" || echo "no")
echo "LAKE_INTRO: $_LAKE_SEEN"
_TEL=$(~/.codex/skills/gstack/bin/gstack-config get telemetry 2>/dev/null || true)
_TEL=$($([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) get telemetry 2>/dev/null || true)
_TEL_PROMPTED=$([ -f ~/.gstack/.telemetry-prompted ] && echo "yes" || echo "no")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
echo "TELEMETRY: ${_TEL:-off}"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
mkdir -p ~/.gstack/analytics
echo '{"skill":"design-review","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true
for _PF in ~/.gstack/analytics/.pending-*; do [ -f "$_PF" ] && ~/.codex/skills/gstack/bin/gstack-telemetry-log --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
for _PF in ~/.gstack/analytics/.pending-*; do [ -f "$_PF" ] && $([ -x .agents/skills/gstack/bin/gstack-telemetry-log ] && echo .agents/skills/gstack/bin/gstack-telemetry-log || echo ~/.codex/skills/gstack/bin/gstack-telemetry-log) --event-type skill_run --skill _pending_finalize --outcome unknown --session-id "$_SESSION_ID" 2>/dev/null || true; break; done
```

If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills — only invoke
them when the user explicitly asks. The user opted out of proactive suggestions.

If output shows `UPGRADE_AVAILABLE <old> <new>`: read `~/.codex/skills/gstack/gstack-upgrade/SKILL.md` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.
If output shows `UPGRADE_AVAILABLE <old> <new>`: read `$([ -f .agents/skills/gstack-upgrade/SKILL.md ] && echo .agents/skills/gstack-upgrade/SKILL.md || echo ~/.codex/skills/gstack/gstack-upgrade/SKILL.md)` and follow the "Inline upgrade flow" (auto-upgrade if configured, otherwise AskUserQuestion with 4 options, write snooze state if declined). If `JUST_UPGRADED <from> <to>`: tell user "Running gstack v{to} (just updated!)" and continue.

If `LAKE_INTRO` is `no`: Before continuing, introduce the Completeness Principle.
Tell the user: "gstack follows the **Boil the Lake** principle — always do the complete
Expand All @@ -68,7 +68,7 @@ Options:
- A) Help gstack get better! (recommended)
- B) No thanks

If A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry community`
If A: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry community`

If B: ask a follow-up AskUserQuestion:

Expand All @@ -79,8 +79,8 @@ Options:
- A) Sure, anonymous is fine
- B) No thanks, fully off

If B→A: run `~/.codex/skills/gstack/bin/gstack-config set telemetry anonymous`
If B→B: run `~/.codex/skills/gstack/bin/gstack-config set telemetry off`
If B→A: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry anonymous`
If B→B: run `$([ -x .agents/skills/gstack/bin/gstack-config ] && echo .agents/skills/gstack/bin/gstack-config || echo ~/.codex/skills/gstack/bin/gstack-config) set telemetry off`

Always run:
```bash
Expand Down Expand Up @@ -206,7 +206,7 @@ Run this bash:
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - _TEL_START ))
rm -f ~/.gstack/analytics/.pending-"$_SESSION_ID" 2>/dev/null || true
~/.codex/skills/gstack/bin/gstack-telemetry-log \
$([ -x .agents/skills/gstack/bin/gstack-telemetry-log ] && echo .agents/skills/gstack/bin/gstack-telemetry-log || echo ~/.codex/skills/gstack/bin/gstack-telemetry-log) \
--skill "SKILL_NAME" --duration "$_TEL_DUR" --outcome "OUTCOME" \
--used-browse "USED_BROWSE" --session-id "$_SESSION_ID" 2>/dev/null &
```
Expand Down Expand Up @@ -693,7 +693,7 @@ Compare screenshots and observations across pages for:

**Project-scoped:**
```bash
source <(~/.codex/skills/gstack/bin/gstack-slug 2>/dev/null) && mkdir -p ~/.gstack/projects/$SLUG
source <($([ -x .agents/skills/gstack/bin/gstack-slug ] && echo .agents/skills/gstack/bin/gstack-slug || echo ~/.codex/skills/gstack/bin/gstack-slug) 2>/dev/null) && mkdir -p ~/.gstack/projects/$SLUG
```
Write to: `~/.gstack/projects/{slug}/{user}-{branch}-design-audit-{datetime}.md`

Expand Down Expand Up @@ -911,7 +911,7 @@ Write the report to both local and project-scoped locations:

**Project-scoped:**
```bash
source <(~/.codex/skills/gstack/bin/gstack-slug 2>/dev/null) && mkdir -p ~/.gstack/projects/$SLUG
source <($([ -x .agents/skills/gstack/bin/gstack-slug ] && echo .agents/skills/gstack/bin/gstack-slug || echo ~/.codex/skills/gstack/bin/gstack-slug) 2>/dev/null) && mkdir -p ~/.gstack/projects/$SLUG
```
Write to `~/.gstack/projects/{slug}/{user}-{branch}-design-audit-{datetime}.md`

Expand Down
Loading