Commit 9d823bb
feat: implement UMS v1.0 with enhanced CLI experience
* chore: enhance linting and formatting scripts in package.json
- Added separate linting commands for source files and markdown files.
- Introduced formatting commands for markdown files.
- Updated format check command to include markdown files.
- Added markdownlint and markdownlint-cli as dependencies for markdown linting.
* chore: update Prettier configuration with overrides for markdown and YAML
* chore: add old directory to .gitignore
* docs: add comprehensive guide to AI persona generation strategies
* docs(research): Add comprehensive analysis of reasoning techniques
* feat: implement M0 and M0.5 - UMS v1.0 baseline and ID validation
- Add UMS v1.0 constants: valid tiers, ID regex, directive keys, standard shapes
- Implement comprehensive ID validation regex with full test coverage
- Create standardized error formatting utilities for consistent CLI messages
- Add test fixtures for valid/invalid UMS v1.0 modules and personas
- Establish foundation for UMS v1.0 CLI implementation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: implement M1 - UMS v1.0 module loader and validator
- Add complete UMS v1.0 type definitions for modules, personas, and build reports
- Implement comprehensive module loader with YAML parsing and validation
- Validate all UMS v1.0 requirements: ID format, schema version, directives, metadata
- Support all standard shapes: specification, procedure, pattern, checklist, data, etc.
- Handle deprecated modules with replacement validation
- Extensive test suite with 17 test cases covering all validation scenarios
- Proper error messages with UMS section references for debugging
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: implement M2 - UMS v1.0 persona loader and validator
- Add comprehensive persona loader with YAML parsing and validation
- Validate all required UMS v1.0 persona fields: name, description, semantic, moduleGroups
- Support optional fields: role and attribution with proper type validation
- Validate moduleGroups structure with proper groupName and modules arrays
- Enforce module ID format validation within groups
- Detect and reject duplicate group names and duplicate module IDs within groups
- Allow same module ID across different groups (valid use case)
- Comprehensive test suite with 18 test cases covering all validation scenarios
- Proper error messages with section references for debugging
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: implement M3 - UMS v1.0 build engine with Markdown rendering
- Add complete build engine with module discovery, resolution, and rendering
- Implement ModuleRegistry for efficient module ID to file path mapping
- Support persona composition with moduleGroups in correct order
- Render all UMS v1.0 directives according to specification Section 7.1:
- goal: paragraph format
- principles/constraints: bullet lists
- process: ordered lists with automatic numbering
- criteria: task lists with [ ] checkboxes
- data: fenced code blocks with language inference from mediaType
- examples: subheadings with rationale and code snippets
- Support optional persona role rendering and attribution lines
- Handle deprecation warnings for deprecated modules
- Comprehensive test suite with 9 test cases covering all rendering scenarios
- Module separator handling and proper Markdown structure
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: integrate UMS v1.0 build system with CLI interface
- Add ums-build.ts command handler for UMS v1.0 personas
- Update index.ts to support both .persona.yml (UMS v1.0) and .persona.jsonc (legacy) formats
- Add automatic format detection based on file extensions
- Support stdin input for UMS v1.0 builds
- Include comprehensive help text with examples for both formats
- Maintain full backward compatibility with legacy persona builds
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: resolve eslint errors with proper type safety
- Replace unsafe YAML parsing casts with proper type guards in ums-module-loader.ts and ums-persona-loader.ts
- Fix Buffer handling in ums-build.ts with proper async stream event listeners
- All fixes use proper TypeScript patterns instead of type assertions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: break down large functions in ums-module-loader.ts
- Split validateModule (94 lines) into smaller helper functions:
- validateRequiredKeys for top-level key validation
- validateVersionFields for version/schema validation
- validateDeprecation for deprecation warning logic
- Split validateMeta (98 lines) into focused helper functions:
- validateRequiredMetaFields for required field validation
- validateMetaTags for optional tags validation
- validateDeprecatedReplacedBy for deprecation constraint logic
- All functions now comply with max-lines-per-function rule (≤70 lines)
- Maintains same validation logic and test coverage
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor(eslint): update ESLint configuration for TypeScript
* feat: implement M4 - Build Report generation (UMS v1.0)
- Add BuildReport generation to ums-build-engine with required fields:
- personaName, schemaVersion, toolVersion, personaDigest
- buildTimestamp (ISO 8601), moduleGroups with resolved modules
- Write .build.json file alongside .md output with proper formatting
- Include resolved module metadata: id, version, source, digest, shape
- Implement placeholder digest generation for content verification
- All tests passing, following CLI v1 implementation plan M4
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: implement M5 - UMS v1.0 list command
- Rewrite list command to use UMS v1.0 module discovery via ModuleRegistry
- Implement M5 requirements:
- Discovery under instructions-modules/**/*.module.yml
- Table format: ID | Tier/Subject | Name | Description
- Sorting: meta.name (Title Case) then id
- Optional --tier filter (foundation|principle|technology|execution)
- Empty-state message when no modules found
- Break down large function into focused helper functions
- All tests passing, lint clean
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: implement M7 - UMS v1.0 validate command
Implement validate command for UMS v1.0 specification with comprehensive
validation of modules and personas, including path handling, verbose output,
and proper error reporting according to M7 requirements.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Remove outdated documentation files: Advanced Authoring Patterns & Examples, Governance and Quality Assurance, Project Architecture, Testing Strategy, and Code of Conduct
* feat: implement M6 - UMS v1.0 search command
Implement search command for UMS v1.0 specification with substring search
across meta.name, meta.description, and meta.tags. Includes tier filtering
and same sorting as list command (meta.name then id) according to M6 requirements.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor: remove legacy support, implement UMS v1.0-only CLI
BREAKING CHANGES:
- Remove legacy .md module support (only .module.yml)
- Remove legacy .persona.json/.jsonc support (only .persona.yml)
- Remove create-module and create-persona commands
- Remove legacy module-service and persona-service
- Update build command to use UMS v1.0 engine only
- Clean CLI interface to support UMS v1.0 specification only
This is a major version change that eliminates backwards compatibility
with pre-UMS formats in favor of a cleaner, UMS v1.0-focused codebase.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* style(prettierrc): update file overrides for markdown and yaml
* feat(eslint): add Prettier plugin and update rules
- Integrated eslint-plugin-prettier for better formatting support
- Changed Prettier rule from 'error' to 'warn'
- Updated TypeScript ESLint configuration for project path
- Added typescript-eslint as a dev dependency
* chore: update version to 2.0.0 in package.json
* refactor(cli): implement unified progress indicators and error handling
- Replace ora spinner usage with new ProgressIndicator and BatchProgress classes
- Add structured logging with timestamps and verbose output support
- Enhance error handling with command/operation context and standardized formatting
- Update all command handlers (build, list, search, validate) to use new progress system
- Add comprehensive error formatting utilities with UMS v1.0 standards
- Include extensive test coverage for progress indicators and error handlers
- Maintain backward compatibility with legacy error handling methods
This change improves user experience with better progress feedback and
consistent error messaging across all CLI operations.
* feat(M0.5): implement standardized error message format across CLI
Implements M0.5 - ID Regex Testing and Error Message Standards:
- Standardize error format: [ERROR] <command>: <context> - <issue> (<suggestion>)
- Update error-handler.ts to enforce M0.5 format with required command parameter
- Add comprehensive error formatting utilities with file/key path context
- Update all commands (build, list, search, validate) to use M0.5 format
- Replace direct console.error calls with formatError in build command
- Add enhanced error context including UMS section references
- Create comprehensive test suite for error message format compliance
- Ensure all error messages provide actionable recovery suggestions
Key improvements:
- Consistent error messaging across all CLI commands
- Enhanced debugging with file paths and key paths for validation errors
- Actionable suggestions for every error scenario
- Support for UMS v1.0 section references in rule violations
- Backward compatible handleErrorLegacy for existing spinner usage
Completes M0.5 milestone requirements for
* feat(build): enhance build report structure and module handling
- Introduced new BuildReport structure to include tool information, persona details, and rendering configuration.
- Updated BuildReportGroup and BuildReportModule interfaces for better clarity and functionality.
- Removed deprecated fields and added new properties to support enhanced reporting.
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 576ce40 commit 9d823bb
File tree
62 files changed
+10064
-6695
lines changed- .vscode
- docs
- 1-getting-started
- 2-user-guide
- 3-authoring
- 4-contributing
- research
- src
- commands
- core
- types
- utils
- tests/fixtures
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
62 files changed
+10064
-6695
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| 147 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
17 | 35 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
This file was deleted.
This file was deleted.
This file was deleted.
0 commit comments