Przejdź do treści
Biblioteka skilli
Produktywność osobista · Analiza

dev10x:park-discover

/dev10x:park-discover

Zbiera odroczone sprawy ze wszystkich źródeł, żeby przy starcie sesji nic nie zostało pominięte.

Repozytorium
dev10x-claude ↗
Licencja
MIT
Ostatnia zmiana repozytorium
12.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format15 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 12.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Zbiera odroczone sprawy ze wszystkich źródeł, żeby przy starcie sesji nic nie zostało pominięte.

Oryginalny opis (EN)

Gather deferred items across all sources — so nothing is missed when starting a session or picking up where you left off. TRIGGER when: starting a session, picking up prior work, or checking for deferred items. DO NOT TRIGGER when: mid-session active work with no need to check deferred items.

Jak działa

  1. Orchestration
  2. When to Use
  3. Substrate
  4. Workflow
  5. Presentation
  6. Next steps
  7. Commands and permissions
  8. Used By
Sekcje z nagłówków SKILL.md, w oryginale · 275 linii, 1 199 słów
Podgląd SKILL.md
---
name: dev10x:park-discover
description: >
  Gather deferred items across all sources — so nothing is missed
  when starting a session or picking up where you left off.
  TRIGGER when: starting a session, picking up prior work, or checking
  for deferred items.
  DO NOT TRIGGER when: mid-session active work with no need to check
  deferred items.
user-invocable: true
invocation-name: dev10x:park-discover
allowed-tools:
  - Read
  - Grep
  - Bash(git branch:*)
  - Bash(git log:*)
  - mcp__plugin_dev10x_cli__pr_detect
  - mcp__plugin_dev10x_cli__pr_comments
  - mcp__plugin_dev10x_cli__task_index_get
  - mcp__claude_ai_Slack__slack_search_public_and_private
---

# dev10x:park-discover — Gather Deferred Items

**Announce:** "Using dev10x:park-discover to check all deferral sources."

## Orchestration

This skill follows `references/task-orchestration.md` patterns.
Create a task at invocation, mark completed when done:

**REQUIRED: Create a task at invocation.** Execute at startup:

1. `TaskCreate(subject="Discover deferred items", activeForm="Discovering items")`

Mark completed when done: `TaskUpdate(taskId, status="completed")`

## When to Use

Invoke this skill when the user asks about existing deferred items:
- "what's deferred"
- "any open items from yesterday"
- "what do we have to pick up"
- "check for deferrals"

Do NOT use for writing new deferrals — use `dev10x:park-todo` or
`dev10x:park` instead.

## Substrate

The canonical store for deferred work is the per-repo task index
behind `mcp__plugin_dev10x_cli__task_index_get` (GH-85, rehomed out
of `.claude/Dev10x/session.yaml` by GH-1009 / ADR-0018 D5). It is
keyed by the repo's git common dir, so one index serves every
worktree of a repo. Every writer in the park/session family appends a
structured entry into its `tasks:` list with a `source:` field that
names the writer:

| `source:` value     | Written by                          |
|---------------------|-------------------------------------|
| `manual`            | `dev10x:park` (target: TODO)        |
| `code-todo`         | `dev10x:park-todo` (inline mode)    |
| `slack-reminder`    | `dev10x:park-remind`                |
| `pr-bookmark`       | `dev10x:park` (target: PR bookmark) |
| `session-wrap-up`   | `dev10x:session-wrap-up` Phase 3b   |

External sources (Slack DMs, PR comments) remain as the
authoritative content; the index carries a pointer
(`metadata.slack_ts`, `metadata.pr_url`) so the discovery
report can link out.

## Workflow

### 1. Read the task index (primary source)

```
mcp__plugin_dev10x_cli__task_index_get()
```

If the response has `exists: false` and no `tasks`, note "No task
index — no local deferrals indexed" and skip to the external-sources
step. Do NOT fall back to reading a file path by hand: the tool
already probes the retired `.claude/Dev10x/session.yaml` location
(until removal in `0.112.0` per the deprecation register, GH-1009,
ADR-0028) and reports it as `legacy_read: true` with `legacy_path`.
When `legacy_read` is true, add one line to the report — "carried from
the retired `<legacy_path>`; the next park write folds it forward" —
so a supervisor can see why the items still live in the old place.

Extract three sections from the response:

- `continuation_prompt:` — a paragraph carrying diagnosed
  context from the prior session. Surface this **verbatim** in
  the report; do not summarize.
- `tasks:` — a list of structured entries. Each entry has
  `subject`, `status`, and (when present) `metadata` and
  `source`. Group by `source:` for the report.
- `insights:` — a list of lessons / decisions the prior
  session carried forward. Surface each item verbatim.

**Staleness classification (GH-782).** `dev10x:session-wrap-up`
stamps the index with `branch`, `tickets`, and `wrapped_at` via
`mcp__plugin_dev10x_cli__task_index_set`; all three come back in the
`task_index_get` response.
Classify the carried `continuation_prompt:` / `tasks:` /
`insights:` before presenting them, using the same rule as the
`session_stale` predicate the `session_adoption` gate applies:

- **Live** — the recorded `branch:` equals the current branch,
  OR a recorded ticket overlaps the resuming session's tickets.
- **Stale** — neither holds (identity mismatch), or `wrapped_at`
  is absent / clearly old.

Present live entries as actionable. Present stale entries under a
separate **Stale carryover (verify before resuming)** heading so
months-old, already-shipped items are surfaced for pruning rather
than re-offered as current work. Do not delete them — flagging is
enough; the user (or a later `dev10x:park` write) decides.

### 2. Read legacy `.claude/TODO.md` (back-compat)

For repos that still carry items in the pre-GH-85 TODO file:

```
Read(file_path="<repo-root>/.claude/TODO.md")
```

If the file does not exist, note "No legacy TODO file" and
move on. Extract pending items (`- [ ]` lines) and present
them under a separate **Legacy TODO file** heading so the user
can migrate them into the task index.

### 3. Scan code TODOs / FIXMEs (Grep tool)

```
Grep(pattern="TODO|FIXME", path="src", output_mode="content", -n=true)
```

Distinguish in-flight items added in the current branch from
long-standing tech debt by checking the branch's commits:

```bash
git log --oneline origin/develop..HEAD
```

Only flag TODOs introduced on the current branch as actionable;
the rest are tech-debt notes for `dev10x:project-audit`.

### 4. Open PR bookmark comments

Detect the PR for the current branch via the MCP wrapper:

```
mcp__plugin_dev10x_cli__pr_detect(arg="")
```

If a PR is found, fetch its comments via the MCP wrapper:

```
mcp__plugin_dev10x_cli__pr_comments(action="list", pr_number=<number>)
```

Filter for comments whose body starts with
`🔖 **Session bookmark**` (the standard marker set by
`dev10x:session-wrap-up`). Include the matched comments under
**PR Session Bookmarks**.

Skip silently when `pr_detect` returns `{"error": ...}` — that
means no PR for the current branch, not a failure.

### 5. Slack DM reminders

Search Slack for self-reminders from the park-remind bot. The
`🔖` emoji is the standard prefix from `dev10x:park-remind`:

```
mcp__claude_ai_Slack__slack_search_public_and_private(
  query="from:<@U0AD92X4X1S> 🔖",
  include_bots=true,
  sort="timestamp",
  sort_dir="desc",
  limit=20)
```

If no results, broaden to `from:<@U0AD92X4X1S> defer OR TODO OR
reminder`. Skip silently when Slack search returns no matches.

### 6. Memory notes (`~/.claude/memory/`)

Search the global memory directory for in-progress items:

```
Grep(pattern="defer|TODO|in-progress|pick up",
     path="/home/<user>/.claude/memory",
     glob="*.md",
     output_mode="content", -n=true)
```

These are user-global notes, not project-local — surface them
in a dedicated section.

## Presentation

Group findings in a scannable format. Always lead with
`continuation_prompt` verbatim — it is qualitatively richer
than any single TODO line.

```markdown
## Deferred Items — <project name>

### Continuation prompt (task index)

<continuation_prompt verbatim, or "(none)">

### Open tasks (task index)

#### From session-wrap-up
- [<status>] <subject> — <metadata summary>

#### From park (manual / PR bookmark)
- [<status>] <subject> — <metadata summary>

#### From park-todo (code-todo)
- [<status>] <subject> — `<metadata.location>`

#### From park-remind (slack-reminder)
- [<status>] <subject> — Slack ts `<metadata.slack_ts>`

### Carried insights (task index)

- <insight 1 verbatim>
- <insight 2 verbatim>

### Stale carryover (verify before resuming)

- [<status>] <subject> — recorded on `<branch>` / `<tickets>`,
  wrapped `<wrapped_at>` (identity ≠ current session)

### PR Session Bookmarks

- PR #<n>: <comment excerpt> (<comment url>)

### Slack reminders

- <message excerpt> (<permalink>)

### Legacy TODO file (`.claude/TODO.md`)

- [ ] <legacy item> (consider migrating to the task index via park)

### Recent code TODOs (current branch)

- `<file>:<line>` <comment>

### Memory notes (`~/.claude/memory/`)

- <file>: <excerpt>
```

If a section has no matches, render it as `(none)` rather than
omitting — the absence is itself information.

## Next steps

After presenting findings, ask whether to resume any item.
**REQUIRED: Call `AskUserQuestion`** (do NOT use plain text)
when at least one source returned items.

Options:
- Resume the continuation prompt (Recommended when present)
- Pick a specific task to work on
- Migrate legacy TODO.md items into the task index
- Just informational — close

## Commands and permissions

This skill MUST NOT use any of the following anti-patterns —
they all trigger permission friction and were the second
documented friction class in GH-85:

| ❌ Anti-pattern                              | ✅ Use instead                              |
|---------------------------------------------|---------------------------------------------|
| `cat .claude/TODO.md`                       | `Read(file_path=...)`                       |
| `grep -rn 'TODO' src/`                      | `Grep(pattern='TODO', path='src')`          |
| `date +%Y-%m-%d; git branch ...; basename` | Single Bash call per command                |
| `$(git rev-parse --show-toplevel)`          | Pass an absolute path to Read directly      |
| `gh pr view N --json comments --jq ...`     | `mcp__plugin_dev10x_cli__pr_comments(...)` |

Every Bash invocation in this skill is a single command — no
`;` chaining, no `&&`, no subshells, no inline scripts.

## Used By

- `dev10x:park-todo` — redirects here when user asks to review/check
  deferrals instead of write them
Pliki w paczce (2)
  • SKILL.md 9 KB
  • evals/evals.json 3 KB

Wersje

W bazie nie ma innych skilli o nazwie dev10x:park-discover.

Migawka bazy z 28.10.2026 · wersja paczki 966bc46885da (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90dev10x:park-remind
    Planuje przypomnienie na Slacku, żeby odroczone zadanie wróciło w chwili czytania wiadomości.
  • 90dev10x:park-todo
    Odkłada pracę do komentarzy w kodzie lub do indeksu zadań projektu, żeby wróciła przy edycji tego miejsca.
  • 100goal-tracker
    Zapisuje cel sesji w datowanym pliku z pozycjami i dowodami, utrzymuje jego status i odpowiada w poniżej 100 słów, co osiągnięto, co odłożono i co zostało otwarte.
  • 90dot-session-queue
    Odkłada sesję OpenCode na serwerze domowym, żeby podjąć ją na innej maszynie, i pokazuje kolejkę sesji czekających na odebranie.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.