Skip to content

Substantial rework of UI#10

Open
titaniumbones wants to merge 11 commits intomainfrom
duplicate-management
Open

Substantial rework of UI#10
titaniumbones wants to merge 11 commits intomainfrom
duplicate-management

Conversation

@titaniumbones
Copy link
Copy Markdown
Collaborator

Moves dangerous actions into the check modal, and has fairly robust error-checking and options for the changes. Resolves some, but not all problems w/ the app.

titaniumbones and others added 11 commits December 21, 2025 18:27
Unfinished ADR with a set of open questions -- treating a draft ADR as
a approximately equivalent to an RFC.
Phase 1: Existing Resource URL Fields
- Add optional URL inputs for existing Scoping Doc and Asana Board
- Skip resource creation when URLs are provided
- URL validation for Google Docs and Asana patterns

Phase 2: Populate from Existing Record
- Add ProjectSearch component with name search and URL paste support
- Add ProjectPreviewModal to preview before loading
- Populate form from existing Airtable project with milestones/assignments
- Track editing mode with "Start Fresh" option

Phase 3: Restructure Submission Flow
- Consolidate to single "Submit and Check" button
- Add DuplicateResolutionModal with platform status display
- Support skip option for all platforms (Airtable, Asana, Google)
- Show created resources status after submission

Also includes:
- Performance fix: Use watch() subscription instead of re-rendering
- Performance fix: Memoize defaults in useDuplicateCheck hook
- ADR-006 documenting the duplicate management architecture

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add ResourceManagement component that allows users to:
- Link existing resource URLs after project creation
- Create individual resources (Asana, Scoping Doc, etc.) on demand
- Automatically update Airtable record with linked/created URLs

Features:
- Shows resource status (created/missing/not connected)
- Inline URL input with validation for linking
- "Create Now" buttons for individual resource creation
- Only appears when Airtable record exists but other resources are missing

Also fixes:
- handleFinish now uses getFormData() instead of removed watchedValues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add getFieldOptions() to fetch single-select field choices from Airtable metadata API
- Add getProjectTypeOptions() convenience function for Project Type field
- Create useProjectTypes hook with React Query caching (10 min)
- Update ProjectForm to use dynamic options with static fallback
- Options now sync automatically when Airtable field is updated

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix React state timing issue where milestones weren't created in Asana
  (async state wasn't updated when checked immediately after creation)
- Add milestone sync UI to ResourceManagement for post-facto creation
- Add assignee dropdown to outcomes, defaulting to Project Coordinator
- Fix Airtable update logic to properly update existing records instead
  of creating new ones when 'update' resolution selected
- Fix Asana Board and Project Scope fields not being saved to Airtable
  by tracking resource URLs in local variables
- Fix FTE sync to divide by 100 (form stores 50%, Airtable expects 0.5)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Deploy project-creation-app to Netlify preview on PR open/update
- Auto-comment preview URL on PR
- Uses production OAuth relay (stable redirect URLs required)
- Only triggers for changes in project-creation-app/

Requires GitHub secrets to be configured (see ROADMAP.md)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixes Netlify's native GitHub integration by specifying
base = project-creation-app for the monorepo structure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Netlify's native GitHub integration already provides deploy previews
automatically. The nwtgck/actions-netlify action was failing with
'Not Found' errors. Since native integration works perfectly, removed
the redundant GitHub Action.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant