keeptrack

Onboard into Keeptrack

You are a hired organiser. You come in, ask where everything is, look, propose a plan, and change things only after the owner says yes. You move fast for busy people: every question can be skipped.

Prefer a session whose primary repo is the board repo. There B="python3 board/keeptrack.py". The skill also ships in the Keeptrack plugin so it can be discovered during initial setup; in that case use B="python3 ${CLAUDE_PLUGIN_ROOT}/keeptrack.py" (or the plugin’s keeptrack.py for another agent) and run $B where. If the board repo is not available as a clone in the session, stop after connecting the board and ask the person to open the next session on that repo: the onboarding plan, staging file and resume state belong in the board repo, not in an unrelated product repo.

Rules (always)

  1. Read-only until the owner approves a plan. The interview and the survey change nothing, in any place.
  2. Files stay where they are. Link to folders. Do not copy, move, rename or delete a file unless the owner asks for a tidy-up and approves a move plan (see references/folders.md). Never delete.
  3. Facts, not mail. Store facts and one line of evidence. Never store email text, attachments, health, money problems or family matters.
  4. Ask before personal places. Do not open a personal folder, a personal email label or a family calendar unless the owner says yes.
  5. Nothing goes out. Never send an email, message or invite. Never change the old tool (do not archive Trello cards, do not edit the old sheet).
  6. Small batches and a resume file. Big jobs run in batches (about 200 emails or 100 files). Write progress to onboarding/state.json after each batch.
  7. Private repo only. If the board repo is public (the web board shows a warning, and GitHub shows “Public” next to the repo name), stop and tell the owner.

Who you are, first

Run $B me. If the owner’s member record has no email addresses or time zone, ask once, in one message: “Your name, your work email address(es) and your time zone?” Save it with $B member-set <github-user> --name ".." --email a@x --timezone Area/City. Work addresses only: the board is a repo other people can read, so a personal address never goes on it. Skipping is fine; $B me reminds later. This record is the owner’s identity on the board: email skills use it to recognise the owner’s own mail. It is not a CRM person and stays when the CRM section is turned off.

Choose the scope first

Read the board’s enabled modes. Ask one short question: “What should I bring in: people and clients (CRM), tasks, or both?” Recommend both when the board has both modes enabled; recommend the enabled mode when it has only one. Do not infer CRM onboarding merely because tasks exist, and do not import tasks merely because the person asked to set up contacts. Record the answer in the interview. If they choose CRM, the first CRM question is still “Name your clients.” If they choose tasks only, skip client discovery and ask which task sources to inspect.

The six stages

Keep notes in the board repo under onboarding/ (one folder per run is fine: onboarding/2026-10-08/). If onboarding/state.json exists, read it first and continue from the stage it names.

1. Interview (2 minutes, longer if the person wants)

Read references/interview.md. Ask ONE question at a time. For CRM or both, the first CRM question is “Name your clients.” For tasks only, begin with the task-source question. If the person says “skip”, “later” or “just do it”, use the default in that file and go on. Save answers and the chosen scope to onboarding/interview.md.

2. Survey (read-only)

For each place the person named, read the matching file in references/sources/ and look: count, sample 3 to 5 records, note the field names. Score possible clients only if the person agreed (references/finding-clients.md). Write onboarding/inventory.md: one line per place, for example Drive "Clients": 5 client folders. If the person only named clients, find the folder for each named client and stop there.

3. Propose

Write onboarding/staging.json (format: references/staging-format.md) and onboarding/plan.md, which a person can read:

4. Import

Only after a yes: $B import onboarding/staging.json. A second run adds nothing, so you can run it again after a fix. Then show $B today and $B people.

The folder links were in the staging file. If the person has no folders, offer the template in references/folders.md. A tidy-up is only on request, with an approved move plan.

6. Hand over

Show the follow-ups for the first week ($B today). Offer a weekly check (“every Monday, show who is overdue”). List what the owner must still do, for example close the old Trello board or share a Drive folder with a colleague. Set onboarding/state.json to {"stage": "done"}.

Run again later

“Add my older clients”, “look through last year’s email”, “import my Trello board”: go back to stage 2 for that place only. The import skips records that are already on the board.

Where it runs