Skip to content

docs: add formal proposal process and contribution guidelines#83

Merged
synthable merged 2 commits intodevelopfrom
feat/proposal-process
Oct 14, 2025
Merged

docs: add formal proposal process and contribution guidelines#83
synthable merged 2 commits intodevelopfrom
feat/proposal-process

Conversation

@synthable
Copy link
Copy Markdown
Owner

Summary

This PR introduces a comprehensive proposal process and contribution guidelines to support community contributions and ensure consistent quality across the codebase.

What's New

📝 Contribution Guidelines (CONTRIBUTING.md)

Complete guide for contributing to the project:

  • Code of Conduct: Professional and inclusive environment guidelines
  • Development Workflow: Branch strategy, commit messages, pre-commit/pre-push checks
  • Pull Request Process: Step-by-step submission and review guidelines
  • Testing Requirements: 80% coverage minimum, test structure, best practices
  • Coding Standards: TypeScript guidelines, code style, file organization
  • Package-Specific Guidelines: Tailored guidance for ums-lib, ums-sdk, CLI, and MCP packages

🎯 Proposal Process

Two new documentation files establish a formal process for significant changes:

docs/proposal-process.md - Complete proposal lifecycle:

  • When proposals are required vs. recommended
  • Submission and review process (minimum 7-day review period)
  • Acceptance criteria and decision-making
  • Lifecycle management (Draft → Review → Accepted/Rejected → Implemented)

docs/proposal-quick-start.md - 5-minute quick start:

  • Rapid onboarding for contributors
  • Simple template copy-paste workflow
  • Focus on Problem → Solution → Examples

📋 Templates and Issue Forms

docs/spec/proposals/TEMPLATE.md - Structured proposal template:

  • Problem statement
  • Proposed solution
  • Implementation details
  • Testing strategy
  • Migration path
  • Alternatives considered

GitHub Issue Templates:

  • .github/ISSUE_TEMPLATE/proposal.md - New proposal submission
  • .github/ISSUE_TEMPLATE/proposal-feedback.md - Feedback tracking

Key Features

Lightweight Yet Structured

  • Small changes: Direct PRs without proposals
  • Significant changes: Formal proposals with community review
  • Clear thresholds: Guidance on when proposals are required

Community-Friendly

  • Quick start guide reduces barrier to entry
  • Clear examples and templates
  • Iterative refinement based on feedback
  • Transparent decision-making process

Integration with GitHub

  • Issue templates for proposal tracking
  • Pull request integration for proposal documents
  • Clear labeling and status management

Files Changed

New Files (1,834 lines added)

  • ✅ CONTRIBUTING.md (581 lines)
  • ✅ docs/proposal-process.md (492 lines)
  • ✅ docs/proposal-quick-start.md (126 lines)
  • ✅ docs/spec/proposals/TEMPLATE.md (256 lines)
  • ✅ .github/ISSUE_TEMPLATE/proposal.md (44 lines)
  • ✅ .github/ISSUE_TEMPLATE/proposal-feedback.md (41 lines)

Updated Files

  • ✅ docs/README.md (added proposal process link)
  • ✅ packages/ums-sdk/tsconfig.json (added from SDK work)

Benefits

  1. Clear Contribution Path: New contributors understand how to propose and implement features
  2. Quality Assurance: Structured review ensures proposals are well-thought-out
  3. Community Engagement: Transparent process encourages participation
  4. Documentation: Decisions and rationale are documented for future reference
  5. Consistency: Standards ensure consistent code quality across packages

Testing

  • ✅ All tests passing (348 tests)
  • ✅ Type checking passing
  • ✅ Linting passing
  • ✅ Build succeeds

Checklist

  • Documentation is comprehensive and clear
  • Templates are easy to use
  • Process is lightweight for small changes
  • Process is structured for significant changes
  • GitHub integration works correctly
  • All quality checks pass

Next Steps

After merging, contributors can:

  1. Use CONTRIBUTING.md as the primary contribution guide
  2. Submit proposals for significant features/changes
  3. Follow established coding standards and testing requirements
  4. Participate in the review process

This establishes the foundation for a healthy, collaborative open-source project! 🚀

Copilot AI review requested due to automatic review settings October 14, 2025 08:47
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive upgrade to the UMS (Unified Module System) from v1.0 to v2.0, introducing TypeScript support, conflict-aware module registry, and a redesigned architecture focused on pure functional operations. The changes establish TypeScript as the primary format while maintaining backward compatibility and provide enhanced development experience with modular exports.

  • TypeScript-first architecture with .module.ts and .persona.ts support
  • Conflict-aware ModuleRegistry with configurable resolution strategies
  • Complete rewrite of ums-lib with pure functional API design
  • MCP (Model Context Protocol) server implementation

Reviewed Changes

Copilot reviewed 85 out of 90 changed files in this pull request and generated 2 comments.

File Description
packages/ums-mcp/src/index.ts MCP server entry point for Claude Desktop integration
packages/ums-lib/src/ Complete v2.0 rewrite with pure functions, conflict registry, and TypeScript support
packages/copilot-instructions-cli/src/utils/ TypeScript loader and enhanced CLI utilities
modules.config.yml Updated conflict strategy to "error" for stricter validation

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

* Provides error classes and utility functions
*/

export * from './errors.js';
Copy link

Copilot AI Oct 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The utils/index.ts file only exports errors but the transforms.js utility is not exported. This creates inconsistent access patterns where moduleIdToExportName must be imported directly from the main package but other utilities are available through the utils submodule.

Suggested change
export * from './errors.js';
export * from './errors.js';
export * from './transforms.js';

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,441 @@
import { describe, it, expect } from 'vitest';
import { validatePersona } from '../validation/persona-validator.js';
Copy link

Copilot AI Oct 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test file imports validatePersona but the file is named persona-parser.test.ts and should be testing the parser functions. The import suggests this test file is misnamed or testing the wrong functionality.

Copilot uses AI. Check for mistakes.
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @synthable, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's governance and technical foundation by introducing a formal proposal process and comprehensive contribution guidelines. Concurrently, it marks a major architectural shift to UMS v2.0, embracing a TypeScript-first development model across the core library and CLI tools. These changes aim to foster a more structured, collaborative, and robust development environment, improving both contributor experience and the overall quality of the codebase.

Highlights

  • Formalized Contribution and Proposal Process: Introduced a comprehensive proposal process with dedicated documentation (docs/proposal-process.md, docs/proposal-quick-start.md) and GitHub issue templates (.github/ISSUE_TEMPLATE/proposal.md, .github/ISSUE_TEMPLATE/proposal-feedback.md) to streamline community contributions and significant changes. New CONTRIBUTING.md provides detailed guidelines for all aspects of contribution, from code of conduct to testing and coding standards.
  • Transition to UMS v2.0 (TypeScript-First): The Unified Module System (UMS) has been upgraded to v2.0, adopting a TypeScript-first approach. This shift is reflected across the ums-lib and copilot-instructions-cli packages, emphasizing type safety and a pure functional API. Old YAML-based validation has been replaced by reliance on TypeScript's compile-time checks.
  • Enhanced CLI Commands and Utilities: The copilot-instructions-cli now includes new commands: inspect for detailed analysis of the module registry and conflicts, and a new mcp command group for managing the Model Context Protocol server. Existing commands like build, list, search, and validate have been updated to align with UMS v2.0 and leverage new internal utilities for file operations, configuration loading, and module discovery.
  • Improved Developer Experience and Code Quality: Updated ESLint rules enforce stricter code quality, including disallowing inline type imports and strengthening async/await usage. The .nvmrc file has been updated to Node.js v22.19.0, and progress indicators in the CLI now provide more detailed feedback, including ETA and throughput, especially useful in CI environments.
  • Refactored UMS Library Architecture: The ums-lib package has undergone a significant architectural refactor, moving from class-based BuildEngine and ModuleRegistry to a pure functional API organized into distinct domains (parsing, validation, resolution, rendering, registry). This enhances modularity, testability, and platform-agnosticism, making the library more flexible and tree-shakable.
Ignored Files
  • Ignored by pattern: .gemini/** (1)
    • .gemini/settings.json
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This is an extensive and well-thought-out pull request that introduces a formal proposal process, comprehensive contribution guidelines, and a major architectural refactoring to UMS v2.0. The move to a TypeScript-first approach and the separation of the core library (ums-lib) from I/O operations in the CLI are excellent improvements for maintainability and testability. The new documentation is very thorough. I have a few suggestions regarding broken links in the new documentation and a potential issue with module ID validation, but overall this is a fantastic contribution to the project.

} from '../../types/index.js';
import { ValidationError as ValidationErrorClass } from '../../utils/errors.js';

const MODULE_ID_REGEX = /^[a-z0-9][a-z0-9-]*(?:\/[a-z0-9][a-z0-9-]*)*$/;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The MODULE_ID_REGEX on this line seems too lenient. It allows module IDs that do not start with one of the four valid tiers (foundation, principle, technology, execution), for example, it would validate an ID like foo/bar. Given that the tier system is a core concept of UMS, the regex should probably enforce the presence of a valid tier at the beginning of the ID. A stricter regex might be more appropriate to ensure all module IDs are correctly namespaced within the four-tier system.

Comment on lines +91 to +95
- You MUST commit only your work. Do NOT include changes from other team members or unrelated modifications.
- You MUST commit your changes in logical chunks after completing a task.
- You MUST run lints and tests and ensure all pass before committing.
- You MUST ensure your code is well-documented and follows the project's coding standards.
- You MUST write unit tests for new features or bug fixes.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There appears to be some duplication of contributor guidelines in this file. This block is very similar to the Contributor Requirements section at the end of the file (lines 261-266). The comment at line 257 (<!-- Consolidated contributor requirements (replaces duplicated block) -->) suggests a consolidation was intended. To improve the clarity and maintainability of this guide, it would be best to remove this duplicated block and rely on the consolidated section at the end.

- Technology modules (language/framework specific)
- Execution modules (procedures and playbooks)

See [Module Authoring Guide](docs/unified-module-system/12-module-authoring-guide.md) for details.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This link to docs/unified-module-system/12-module-authoring-guide.md appears to be broken as the file is not included in this pull request. Please verify if this file should be added or if the link needs to be updated to a correct location to ensure the contribution guide is fully navigable.

- `npm run test`: Run tests.
- `npm run lint`: Lint the codebase.
- `npm run format`: Format the codebase.
For a deep dive into the Unified Module System, advanced features, and configuration, please read our **[Comprehensive Guide](./docs/comprehensive_guide.md)**.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This link to docs/comprehensive_guide.md appears to be broken as the file is not included in this pull request. Please ensure this file is added or update the link to the correct documentation to provide users with the comprehensive guide as intended.

docs/README.md Outdated
Comment on lines +7 to +9
- **[User Guide](./USER_GUIDE.md):** A comprehensive guide to using the `copilot-instructions-cli` tool.
- **[Unified Module System (UMS)](./unified-module-system/index.md):** The core documentation for the UMS specification, module authoring, and philosophy.
- **[FAQ](./FAQ.md):** Frequently asked questions about the project.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Several links in this new documentation index appear to be broken as the corresponding files or directories are not part of this pull request. For example, USER_GUIDE.md is being removed, and files like unified-module-system/index.md and FAQ.md are not present. Please verify these links and add the necessary files or update the paths to ensure the documentation is navigable.

@synthable synthable changed the base branch from main to develop October 14, 2025 12:41
Add comprehensive documentation for the project's proposal process and
contribution guidelines to support community contributions and ensure
consistent quality across the codebase.

Changes:
- Add CONTRIBUTING.md with detailed contribution guidelines
  - Code of conduct and development workflow
  - Branch strategy and commit message conventions
  - Pull request process and review guidelines
  - Testing requirements and coding standards
  - Package-specific guidelines for each package

- Add formal proposal process documentation
  - docs/proposal-process.md: Complete proposal lifecycle
  - docs/proposal-quick-start.md: 5-minute quick start guide
  - docs/spec/proposals/TEMPLATE.md: Proposal template

- Add GitHub issue templates for proposals
  - .github/ISSUE_TEMPLATE/proposal.md: New proposal submission
  - .github/ISSUE_TEMPLATE/proposal-feedback.md: Feedback tracking

Proposal Process Features:
- Lightweight for small changes, structured for significant changes
- 7-day minimum review period for major proposals
- Clear acceptance criteria and decision-making process
- Integration with GitHub issues and pull requests
- Support for iterative refinement based on feedback

This establishes a clear path for community members to propose and
implement features, architectural changes, and specification updates
while maintaining project quality and coherence.
@synthable synthable force-pushed the feat/proposal-process branch from 4b06b29 to 01b933d Compare October 14, 2025 13:10
@synthable synthable merged commit 92cf6dc into develop Oct 14, 2025
@synthable synthable deleted the feat/proposal-process branch October 14, 2025 13:21
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.

2 participants