Skip to content
Closed
4 changes: 2 additions & 2 deletions agents/gsd-debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,7 @@ mv .planning/debug/{slug}.md .planning/debug/resolved/
**Check planning config using state load (commit_docs is available from the output):**

```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load)
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state load)
# commit_docs is in the JSON output
```

Expand All @@ -1044,7 +1044,7 @@ Root cause: {root_cause}"

Then commit planning docs via CLI (respects `commit_docs` config automatically):
```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
```

Report completion and offer next steps.
Expand Down
24 changes: 12 additions & 12 deletions agents/gsd-executor.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Before executing, discover project context:

**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.

**Project skills:** Check `.agents/skills/` directory if it exists:
**Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
1. List available skills (subdirectories)
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
3. Load specific `rules/*.md` files as needed during implementation
Expand All @@ -37,7 +37,7 @@ This ensures project-specific patterns, conventions, and best practices are appl
Load execution context:

```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init execute-phase "${PHASE}")
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init execute-phase "${PHASE}")
```

Extract from init JSON: `executor_model`, `commit_docs`, `phase_dir`, `plans`, `incomplete_plans`.
Expand Down Expand Up @@ -190,7 +190,7 @@ Track auto-fix attempts per task. After 3 auto-fix attempts on a single task:
Check if auto mode is active at executor start:

```bash
AUTO_CFG=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false")
AUTO_CFG=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" config-get workflow.auto_advance 2>/dev/null || echo "false")
```

Store the result for checkpoint handling below.
Expand Down Expand Up @@ -379,34 +379,34 @@ After SUMMARY.md, update STATE.md using gsd-tools:

```bash
# Advance plan counter (handles edge cases automatically)
node ~/.claude/get-shit-done/bin/gsd-tools.cjs state advance-plan
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state advance-plan

# Recalculate progress bar from disk state
node ~/.claude/get-shit-done/bin/gsd-tools.cjs state update-progress
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state update-progress

# Record execution metrics
node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-metric \
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state record-metric \
--phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
--tasks "${TASK_COUNT}" --files "${FILE_COUNT}"

# Add decisions (extract from SUMMARY.md key-decisions)
for decision in "${DECISIONS[@]}"; do
node ~/.claude/get-shit-done/bin/gsd-tools.cjs state add-decision \
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state add-decision \
--phase "${PHASE}" --summary "${decision}"
done

# Update session info
node ~/.claude/get-shit-done/bin/gsd-tools.cjs state record-session \
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state record-session \
--stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md"
```

```bash
# Update ROADMAP.md progress for this phase (plan counts, status)
node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap update-plan-progress "${PHASE_NUMBER}"
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap update-plan-progress "${PHASE_NUMBER}"

# Mark completed requirements from PLAN.md frontmatter
# Extract the `requirements` array from the plan's frontmatter, then mark each complete
node ~/.claude/get-shit-done/bin/gsd-tools.cjs requirements mark-complete ${REQ_IDS}
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" requirements mark-complete ${REQ_IDS}
```

**Requirement IDs:** Extract from the PLAN.md frontmatter `requirements:` field (e.g., `requirements: [AUTH-01, AUTH-02]`). Pass all IDs to `requirements mark-complete`. If the plan has no requirements field, skip this step.
Expand All @@ -424,13 +424,13 @@ node ~/.claude/get-shit-done/bin/gsd-tools.cjs requirements mark-complete ${REQ_

**For blockers found during execution:**
```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs state add-blocker "Blocker description"
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state add-blocker "Blocker description"
```
</state_updates>

<final_commit>
```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
```

Separate from per-task commits — captures execution results only.
Expand Down
8 changes: 4 additions & 4 deletions agents/gsd-phase-researcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Before researching, discover project context:

**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.

**Project skills:** Check `.agents/skills/` directory if it exists:
**Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
1. List available skills (subdirectories)
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
3. Load specific `rules/*.md` files as needed during research
Expand Down Expand Up @@ -120,7 +120,7 @@ When researching "best library for X": find what the ecosystem actually uses, do
Check `brave_search` from init context. If `true`, use Brave Search for higher quality results:

```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs websearch "your query" --limit 10
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" websearch "your query" --limit 10
```

**Options:**
Expand Down Expand Up @@ -359,7 +359,7 @@ Orchestrator provides: phase number/name, description/goal, requirements, constr

Load phase context using init command:
```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE}")
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init phase-op "${PHASE}")
```

Extract from init JSON: `phase_dir`, `padded_phase`, `phase_number`, `commit_docs`.
Expand Down Expand Up @@ -461,7 +461,7 @@ Write to: `$PHASE_DIR/$PADDED_PHASE-RESEARCH.md`
## Step 7: Commit Research (optional)

```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md"
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md"
```

## Step 8: Return Structured Result
Expand Down
12 changes: 6 additions & 6 deletions agents/gsd-plan-checker.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Before verifying, discover project context:

**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.

**Project skills:** Check `.agents/skills/` directory if it exists:
**Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
1. List available skills (subdirectories)
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
3. Load specific `rules/*.md` files as needed during verification
Expand Down Expand Up @@ -365,7 +365,7 @@ If FAIL: return to planner with specific fixes. Same revision loop as other dime

Load phase operation context:
```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE_ARG}")
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init phase-op "${PHASE_ARG}")
```

Extract from init JSON: `phase_dir`, `phase_number`, `has_plans`, `plan_count`.
Expand All @@ -376,7 +376,7 @@ Orchestrator provides CONTEXT.md content in the verification prompt. If provided
ls "$phase_dir"/*-PLAN.md 2>/dev/null
# Read research for Nyquist validation data
cat "$phase_dir"/*-RESEARCH.md 2>/dev/null
node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "$phase_number"
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "$phase_number"
ls "$phase_dir"/*-BRIEF.md 2>/dev/null
```

Expand All @@ -389,7 +389,7 @@ Use gsd-tools to validate plan structure:
```bash
for plan in "$PHASE_DIR"/*-PLAN.md; do
echo "=== $plan ==="
PLAN_STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify plan-structure "$plan")
PLAN_STRUCTURE=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" verify plan-structure "$plan")
echo "$PLAN_STRUCTURE"
done
```
Expand All @@ -407,7 +407,7 @@ Map errors/warnings to verification dimensions:
Extract must_haves from each plan using gsd-tools:

```bash
MUST_HAVES=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs frontmatter get "$PLAN_PATH" --field must_haves)
MUST_HAVES=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" frontmatter get "$PLAN_PATH" --field must_haves)
```

Returns JSON: `{ truths: [...], artifacts: [...], key_links: [...] }`
Expand Down Expand Up @@ -450,7 +450,7 @@ For each requirement: find covering task(s), verify action is specific, flag gap
Use gsd-tools plan-structure verification (already run in Step 2):

```bash
PLAN_STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify plan-structure "$PLAN_PATH")
PLAN_STRUCTURE=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" verify plan-structure "$PLAN_PATH")
```

The `tasks` array in the result shows each task's completeness:
Expand Down
14 changes: 7 additions & 7 deletions agents/gsd-planner.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Before planning, discover project context:

**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.

**Project skills:** Check `.agents/skills/` directory if it exists:
**Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
1. List available skills (subdirectories)
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
3. Load specific `rules/*.md` files as needed during planning
Expand Down Expand Up @@ -900,7 +900,7 @@ Group by plan, dimension, severity.
### Step 6: Commit

```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "fix($PHASE): revise plans based on checker feedback" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md
```

### Step 7: Return Revision Summary
Expand Down Expand Up @@ -939,7 +939,7 @@ node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "fix($PHASE): revise plans
Load planning context:

```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init plan-phase "${PHASE}")
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init plan-phase "${PHASE}")
```

Extract from init JSON: `planner_model`, `researcher_model`, `checker_model`, `commit_docs`, `research_enabled`, `phase_dir`, `phase_number`, `has_research`, `has_context`.
Expand Down Expand Up @@ -995,7 +995,7 @@ Apply discovery level protocol (see discovery_levels section).

**Step 1 — Generate digest index:**
```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs history-digest
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" history-digest
```

**Step 2 — Select relevant phases (typically 2-4):**
Expand Down Expand Up @@ -1123,7 +1123,7 @@ Include all frontmatter fields.
Validate each created PLAN.md using gsd-tools:

```bash
VALID=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs frontmatter validate "$PLAN_PATH" --schema plan)
VALID=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" frontmatter validate "$PLAN_PATH" --schema plan)
```

Returns JSON: `{ valid, missing, present, schema }`
Expand All @@ -1136,7 +1136,7 @@ Required plan frontmatter fields:
Also validate plan structure:

```bash
STRUCTURE=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify plan-structure "$PLAN_PATH")
STRUCTURE=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" verify plan-structure "$PLAN_PATH")
```

Returns JSON: `{ valid, errors, warnings, task_count, tasks }`
Expand Down Expand Up @@ -1173,7 +1173,7 @@ Plans:

<step name="git_commit">
```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs($PHASE): create phase plan" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs($PHASE): create phase plan" --files .planning/phases/$PHASE-*/$PHASE-*-PLAN.md .planning/ROADMAP.md
```
</step>

Expand Down
2 changes: 1 addition & 1 deletion agents/gsd-project-researcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Always include current year. Use multiple query variations. Mark WebSearch-only
Check `brave_search` from orchestrator context. If `true`, use Brave Search for higher quality results:

```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs websearch "your query" --limit 10
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" websearch "your query" --limit 10
```

**Options:**
Expand Down
2 changes: 1 addition & 1 deletion agents/gsd-research-synthesizer.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ Write to `.planning/research/SUMMARY.md`
The 4 parallel researcher agents write files but do NOT commit. You commit everything together.

```bash
node ~/.claude/get-shit-done/bin/gsd-tools.cjs commit "docs: complete project research" --files .planning/research/
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs: complete project research" --files .planning/research/
```

## Step 8: Return Summary
Expand Down
14 changes: 7 additions & 7 deletions agents/gsd-verifier.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Before verifying, discover project context:

**Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.

**Project skills:** Check `.agents/skills/` directory if it exists:
**Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
1. List available skills (subdirectories)
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
3. Load specific `rules/*.md` files as needed during verification
Expand Down Expand Up @@ -72,7 +72,7 @@ Set `is_re_verification = false`, proceed with Step 1.
```bash
ls "$PHASE_DIR"/*-PLAN.md 2>/dev/null
ls "$PHASE_DIR"/*-SUMMARY.md 2>/dev/null
node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "$PHASE_NUM"
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "$PHASE_NUM"
grep -E "^| $PHASE_NUM" .planning/REQUIREMENTS.md 2>/dev/null
```

Expand Down Expand Up @@ -109,7 +109,7 @@ must_haves:
If no must_haves in frontmatter, check for Success Criteria:

```bash
PHASE_DATA=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "$PHASE_NUM" --raw)
PHASE_DATA=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "$PHASE_NUM" --raw)
```

Parse the `success_criteria` array from the JSON output. If non-empty:
Expand Down Expand Up @@ -152,7 +152,7 @@ For each truth:
Use gsd-tools for artifact verification against must_haves in PLAN frontmatter:

```bash
ARTIFACT_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify artifacts "$PLAN_PATH")
ARTIFACT_RESULT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" verify artifacts "$PLAN_PATH")
```

Parse JSON result: `{ all_passed, passed, total, artifacts: [{path, exists, issues, passed}] }`
Expand Down Expand Up @@ -201,7 +201,7 @@ Key links are critical connections. If broken, the goal fails even with all arti
Use gsd-tools for key link verification against must_haves in PLAN frontmatter:

```bash
LINKS_RESULT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify key-links "$PLAN_PATH")
LINKS_RESULT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" verify key-links "$PLAN_PATH")
```

Parse JSON result: `{ all_verified, verified, total, links: [{from, to, via, verified, detail}] }`
Expand Down Expand Up @@ -283,12 +283,12 @@ Identify files modified in this phase from SUMMARY.md key-files section, or extr

```bash
# Option 1: Extract from SUMMARY frontmatter
SUMMARY_FILES=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs summary-extract "$PHASE_DIR"/*-SUMMARY.md --fields key-files)
SUMMARY_FILES=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" summary-extract "$PHASE_DIR"/*-SUMMARY.md --fields key-files)

# Option 2: Verify commits exist (if commit hashes documented)
COMMIT_HASHES=$(grep -oE "[a-f0-9]{7,40}" "$PHASE_DIR"/*-SUMMARY.md | head -10)
if [ -n "$COMMIT_HASHES" ]; then
COMMITS_VALID=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs verify commits $COMMIT_HASHES)
COMMITS_VALID=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" verify commits $COMMIT_HASHES)
fi

# Fallback: grep for files
Expand Down
14 changes: 7 additions & 7 deletions bin/install.js
Original file line number Diff line number Diff line change
Expand Up @@ -951,16 +951,16 @@ function cleanupOrphanedHooks(settings) {
console.log(` ${green}✓${reset} Removed orphaned hook registrations`);
}

// Fix #330: Update statusLine if it points to old statusline.js path
// Fix #330: Update statusLine if it points to old GSD statusline.js path
// Only match the specific old GSD path pattern (hooks/statusline.js),
// not third-party statusline scripts that happen to contain 'statusline.js'
if (settings.statusLine && settings.statusLine.command &&
settings.statusLine.command.includes('statusline.js') &&
!settings.statusLine.command.includes('gsd-statusline.js')) {
// Replace old path with new path
/hooks[\/\\]statusline\.js/.test(settings.statusLine.command)) {
settings.statusLine.command = settings.statusLine.command.replace(
/statusline\.js/,
'gsd-statusline.js'
/hooks([\/\\])statusline\.js/,
'hooks$1gsd-statusline.js'
);
console.log(` ${green}✓${reset} Updated statusline path (statusline.js → gsd-statusline.js)`);
console.log(` ${green}✓${reset} Updated statusline path (hooks/statusline.js → hooks/gsd-statusline.js)`);
}

return settings;
Expand Down
4 changes: 2 additions & 2 deletions commands/gsd/debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ ls .planning/debug/*.md 2>/dev/null | grep -v resolved | head -5
## 0. Initialize Context

```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs state load)
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" state load)
```

Extract `commit_docs` from init JSON. Resolve debugger model:
```bash
DEBUGGER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-debugger --raw)
debugger_model=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" resolve-model gsd-debugger --raw)
```

## 1. Check Active Sessions
Expand Down
6 changes: 3 additions & 3 deletions commands/gsd/research-phase.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,20 @@ Normalize phase input in step 1 before any directory lookups.
## 0. Initialize Context

```bash
INIT=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs init phase-op "$ARGUMENTS")
INIT=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" init phase-op "$ARGUMENTS")
```

Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `phase_found`, `commit_docs`, `has_research`, `state_path`, `requirements_path`, `context_path`, `research_path`.

Resolve researcher model:
```bash
RESEARCHER_MODEL=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs resolve-model gsd-phase-researcher --raw)
RESEARCHER_MODEL=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" resolve-model gsd-phase-researcher --raw)
```

## 1. Validate Phase

```bash
PHASE_INFO=$(node ~/.claude/get-shit-done/bin/gsd-tools.cjs roadmap get-phase "${phase_number}")
PHASE_INFO=$(node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" roadmap get-phase "${phase_number}")
```

**If `found` is false:** Error and exit. **If `found` is true:** Extract `phase_number`, `phase_name`, `goal` from JSON.
Expand Down
Loading