Skip to content

Claude Code Command to generate testing vaults (internal) #26

@dannysmith

Description

@dannysmith

No easy way to manually test with diverse, realistic data representing different types of users. Would be useful to generate persona-based vaults (freelancer, executive, student, etc.) with accompanying playbooks of things to try across the desktop app, CLI, Obsidian plugin, and Claude Code skill.

Base Vault

Create a tdn-test-vault-base repo based on dannysmith/tdn-obsidian-starter-vault but:

  • No README.md, CLAUDE.md, example-note.md or getting-started.md
  • No content bar Overview.md in folders, no AreaProject.base and only basic Area Project and Task templates
  • A preconfigured .obsidian folder with default core-plugins.json (including wikilinks and bases) and taskdn enabled in community-plugins.

Claude Code Command

Create A Claude Code command /generate-persona-vault

Input Parameters

Th these allow me to control the things which are important that I provide information on. Both should default so that if run without parameters they uh still work.

  • Persona – a long description of the person who is using this, And how they manage their tasks ideally with a description of what they do and how they work in a day. Default to creatively inventing something simple.
  • Vault Size - controls the size of the output vault. One of: tiny, small, medium, large, huge. Small by default. This is useful to force the generator to create large vaults when necessary and small vaults uh if I just want to do some quick testing.

Random Parameters

My thinking here is essentially to provide some guidance to Claude on the kinds of parameters to vary. Now I guess we could make all of these parameters that can be provided to the command and have them pick randomly, but my thinking is if I can kind of provide a load of these, we can give instructions to say, Hey, when you're setting this up, pick from the following options. Pick four for tech savvyness, one for tool use style, three for number of areas, one for length of use or whatever, right? And and then for each of those things we'll we'll obviously provide guidance on on the kind of stuff, I guess this is me just kind of giving the AI k knobs it can turn so that it produces a good variety of realistic things.

  • tech-savvyness - Range from Grandma -> Nerdy Programmer. will affect both the types of task that they're likely to have and also their preference for working with these tools and the level of skill they'll have and the kinds of uh questions they will ask. For instance, grandma is never gonna use the CLI, but she might use Clawed Code.
  • tool-use-style - Whether they prefer working in the command line, in the desktop app or in Obsidian.
  • number-of-areas - Some people only have a few high-level areas, other prefer to split them up more (Low || Medium || High)
  • number-of-active-projects - Some people work hard to only keep a few active projects on the go at onece. Others keep 20+ in various active statuses, with more in planning (Low || Medium || High || Extreme)
  • length-of-use - how long the person has been using taskdn for. The longer they've been using it, the more completed and drop tasks they'll have in their task directory. And they're also expected to have a whole bunch of archive tasks in the archive. We'd also expect them to have a lot of dropped and completed projects and probably a few more paused projects. And they would certainly have a few archived areas. On the other end of the spectrum is a new user who will have zero of these things.
  • granularity-of-tasks - Some people create tasks for everything. Very, very small tasks. This is very GTD. Some people tend to create much larger tasks and they'll likely keep longish checklists of subtasks in the body of their task documents.

Fixed Persona traits

Um the persona should always include certain fixed traits which describe the kinds of people who are likely to be using this task management system. Effectively these are here to rule out certain personas who would never use these tools. This should be a very short fixed list of traits.

Process

  1. Generate persona based on the input persona and the traits you picked above. Be creative but realistic. The persona should have a full name, job, company etc. Include:
  • Basic details (name, email, city etc)
  • A detailed description of them
  • A detailed description of how they tend to manage tasks and what their day looks like and how they use tools to get work done.
  • A short 1-2 para summary of the above.
  1. Generate any hard constraints based on the parameters (eg. must have no more than X projects)
  2. Run ./create-test-vault --name "Joe Bloggs" script, which:
  • Clones dannysmith/tdn-test-vault-base with a unique folder name based on the persona name and starting with v-
  • Creates empty logs/ directory
  1. Write the persona with constraints to persona.md
  2. Use the persona to invent a set of appropriate areas and projects which are realistic for that persona. Write these with some notes on the kinds of tasks and your rationale to vault-plan.md
  3. Create all the areas and projects
  4. Use a subagent to invent and create tasks
  5. Use a subagent to critically review all the areas, projects and and tasks for realism, correctness and then edit/add etc as required.
  6. Generate a "playbook" with some scenarios to try out, and write it to playbook.md
    • "Do a weekly review in the desktop app - are all the right tasks surfaced?"
    • "Try the same workflow in Claude Code with the skill"
  7. Run tdn doctor on the vault with the correct path environment variables and address any issues
  8. Return the next actions the user should take to configure tdn, the obsidian plugin and the desktop app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions