# Change Request: Ideation Toolbox

> CR ID: CR-003  
> Created: 2026-01-23  
> Status: Approved  
> Classification: Modification  
> Related Feature: FEATURE-008

## Summary

Add an "Ideation Toolbox" button to the Workplace that allows users to configure which AI skills are available for idea processing. The toolbox contains 3 sections with checkbox options that persist to a `.ideation-tools.json` file.

## User Request

> "in workplace beside create idea, let's have a button called 'ideation toolbox', in tool box, let's having 3 level sections. 1. for ideation, 2. for mockup 3. for idea sharing. for ideation part, let's have antv-infographic, mermaid options as check box. for mockup, let's having frontend-design as option. for sharing, let's have placeholder there. by default mermaid and frontend-design is check. 3. we should have a .ideation-tools.json under root of ideas folder when compose/upload any ideas or update options in ideation toolbox. 4. when update ideation toolbox, the state in toolbox interface should match the state in json file."

## Change Analysis

### Current Behavior
- Workplace has "Create Idea" button for uploading/composing ideas
- No configuration for which AI skills are available
- No persistent settings for ideation workflow

### Requested Changes
1. Add "Ideation Toolbox" button next to "Create Idea"
2. Toolbox opens a panel/dropdown with 3 sections:
   - **Ideation**: antv-infographic (checkbox), mermaid (checkbox)
   - **Mockup**: frontend-design (checkbox)
   - **Sharing**: placeholder (future expansion)
3. Default selections: mermaid ✅, frontend-design ✅
4. State persists to `x-ipe-docs/ideas/.ideation-tools.json`
5. JSON file created on first compose/upload or toolbox update
6. UI state syncs bidirectionally with JSON file

### Impact Assessment

| Aspect | Impact |
|--------|--------|
| Users | Same (Workplace users) |
| Workflow | Enhanced (adds tool configuration) |
| Data Model | New config file (.ideation-tools.json) |
| UI | New button + dropdown panel |
| API | New endpoints for config read/write |
| Backend | New methods in IdeasService |

### Classification Rationale

**MODIFICATION** - This extends FEATURE-008 by:
- Adding configuration capability to existing Workplace
- Same users, same context
- Small config file, not new data model
- Enhances ideation workflow without changing core purpose

## Requirements

### New Acceptance Criteria (to add to FEATURE-008 v1.3)

- AC-24: "Ideation Toolbox" button visible next to "Create Idea" button
- AC-25: Clicking Toolbox button opens dropdown panel with 3 sections
- AC-26: Ideation section contains checkboxes: antv-infographic, mermaid
- AC-27: Mockup section contains checkbox: frontend-design
- AC-28: Sharing section shows placeholder text
- AC-29: Default selections: mermaid checked, frontend-design checked
- AC-30: `.ideation-tools.json` created in x-ipe-docs/ideas/ on first use
- AC-31: Checkbox changes save immediately to JSON file
- AC-32: UI state reflects JSON file state on page load

### New Functional Requirement

**FR-9: Ideation Toolbox Configuration**

Provide UI for configuring ideation tools with persistent state.

**Details:**
- Button: "Ideation Toolbox" with toolbox/gear icon
- Panel: Dropdown or collapsible with 3 labeled sections
- Checkboxes: Toggle individual tools on/off
- Persistence: JSON file at `x-ipe-docs/ideas/.ideation-tools.json`
- Sync: Load state on Workplace init, save on checkbox change

### JSON File Schema

```json
{
  "version": "1.0",
  "ideation": {
    "antv-infographic": false,
    "mermaid": true
  },
  "mockup": {
    "frontend-design": true
  },
  "sharing": {}
}
```

## Next Steps

1. Update FEATURE-008 specification to v1.3
2. Update technical design with CR-003 implementation
3. Generate tests
4. Implement code
5. Human validation

---

## Approval

- [x] CR analyzed and classified
- [x] Impact assessed
- [x] Requirements defined
- [x] Approved for implementation (2026-01-23)

## Links

- Feature Specification: [specification.md](./specification.md)
- Requirement Details: [requirement-details.md](../requirement-details.md)
