finos / finos/architecture-as-code
Allow generate command to add new options to an existing architecture
- Dominant language
- TypeScript
- Stars
- 399
- Forks
- 138
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 38
Description
## Feature Proposal
### Target Project:
CLI
### Description of Feature:
Currently when you generate an architecture from a pattern you have a nice user experience.
But if you want to come back later and add more options, you have to:
- generate to a new file
- identitify the common config options and copy them over manually (or with AI)
- delete the original and rename
- fill out the new properties
This change would introduce some new logic:
- when generating to a file that already exists, before writing the new file, look at any placeholders in the document
- if there is a value in that placeholder in the current file, extract those values and pre-fill them to the new architecture
in other words it's an in-place update.
Also provide a flag to ignore existing options. `--ignore-existing`
### User Stories:
As a CLI user I want to easily add new options to my existing architecture when generating
### Current Limitations:
CLI overwrites every time.
### Proposed Implementation:
- When a placeholder is generated, track it and its jsonpath in a map
- Before writing, load existing file if exists
- iterate over this map and extract values
- then set on the new map to write
### Alternatives Considered:
Command to copy from one file to another - but this seemed very niche.
### Testing Strategy:
CLI tests, integration tests
### Documentation Requirements:
Update CLI docs
### Implementation Checklist:
- [ ] Design reviewed and approved
- [ ] Implementation completed
- [ ] Tests written and passing
- [ ] Documentation updated
- [ ] Relevant workflows updated (if needed)
- [ ] Performance impact assessed
### Additional Context:
...add any other context, diagrams, mockups, or screenshots about the feature request here...
Contributor guide
Research direction
Start with the CLI generate command and its placeholder-generation flow, then trace how the output file is written. Review the CLI and integration testing areas before implementing preservation of existing placeholder values and the --ignore-existing flag; done means tests pass and the CLI documentation is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100