About research-add-fields
A skill for extending the field schema in `fields.yaml` within a research workflow. It checks existing fields, gathers and confirms additions, then updates the file in place.
Key features
- 01Locate and read `fields.yaml`
- 02Propose fields from user input or web search
- 03Confirm each field as keep, drop, or edit
- 04Set category, detail level, and required status
- 05Append while preserving existing structure
Use cases
- 01Add dimensions before deep research
- 02Avoid duplicating existing field definitions
- 03Extend a research schema in place
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill research-add-fieldsAfter installing, type/research-add-fieldsin Claude Code to confirm it loaded.
Details
From the project READMEResearch Add Fields — Append to the Field Schema
In-place updates fields.yaml with additional research dimensions.
Trigger
/research-add-fields
Pipeline position
/research-outline → ► /research-add-fields ◄ → /research-deep → /research-report
Reachable any time after /research-outline has produced fields.yaml, but most useful before /research-deep so deep agents fill the new fields in their first pass.
Workflow
Step 1 — Auto-locate fields file
Glob */fields.yaml from the current working directory. Read it to know what's already defined — so suggestions don't duplicate existing fields and you can show the user the current categories when asking.
Step 2 — Pick a supplement source
AskUserQuestion with two options:
- A. Direct input — user dictates field names, descriptions, and categories.
- B. Web search — launch a research subagent via the
Tasktool (subagent_type: general-purpose) to propose common fields in the topic's domain.
Step 3 — Display and confirm
- Show the candidate field list back to the user (whether from A or B).
AskUserQuestionfor each candidate: keep / drop / edit.- For each kept field, capture:
category(must match an existingfield_categories[].categoryor be a new one),detail_level(brief | moderate | detailed),required(defaultfalse).
Step 4 — Save update
Append the confirmed fields to fields.yaml, preserving existing structure and ordering. Save in place.
Field shape (matches /research-outline)
field_categories:
- category: <name>
fields:
- name: <field_name>
description: <what to capture>
detail_level: brief | moderate | detailed
required: false
Output
Updated {topic}/fields.yaml — in-place modification, user confirms before save.
Gotchas
- Adding
required: trueretroactively breaks already-completed items. If/research-deepalready produced JSONs for some items and you add a new required field, those JSONs will fail validation. Either add the field asrequired: false, or plan to re-run/research-deepfor the affected items. - Category names are matched literally. A new field whose
categorydoesn't match an existingfield_categories[].categorycreates a new top-level category in the schema. That's fine, but make sure it's intentional — a typo here is a silent split. - The web-search subagent in option B operates outside the conversation context. Hand it the topic and an explicit list of categories that already exist, so its proposals fit the schema rather than colliding with what's there.
fields.yamlis also consumed by~/.claude/skills/research-outline/validate_json.py. The schema this skill writes must stay compatible with that validator — samefield_categories[].fields[].name/requiredshape, no exotic YAML constructs.