Feature Tools
Define and manage feature specifications using natural language commands
Features are the building blocks of your trame projects. Each feature represents a specific capability or requirement that needs to be built, with detailed specifications stored as versioned markdown documents in cloud storage.
Feature Lifecycle
Features evolve through versions as they are implemented and refined. Understanding the lifecycle helps you work effectively with features:
Create Feature
Implement Feature
Update Specification
Track Versions
Tool Reference
Parameters
project_idUUID of the project this feature belongs to
titleOptional short title for the feature (max 255 characters)
descriptionOptional brief description of the feature
spec_contentMarkdown specification with full feature details, requirements, and acceptance criteria
Returns
The created feature object with ID, project ID, title, description, version 1 spec content, and timestamps
Example
Natural Language Examples:
"Create a feature for OAuth authentication in project proj_abc123 with support for Google and email login"
"Add a feature to project proj_xyz789 called User Profile Management for CRUD operations on user profiles"
"I need a new feature in the Task Manager project for real-time notifications using WebSockets"
Expected Response:
✓ Feature created successfully!
Feature: OAuth Authentication System
ID: feat_abc123
Project ID: proj_xyz789
Current Version: v1
Description: OAuth 2.0 authentication with Google and email providers
Created: 2025-02-13T10:00:00Z
The feature specification has been stored and is ready for implementation planning.Parameters
project_idUUID of the project to list features for
Returns
Array of feature objects with metadata: ID, project ID, title, description, current version number, and timestamps. Does not include spec content.
Example
Natural Language Examples:
"Show me all features for project proj_abc123"
"List features in the Task Manager project"
"What features exist in project proj_xyz789?"
Expected Response:
✓ Features for Task Manager (3):
1. User Authentication
ID: feat_001
Description: OAuth 2.0 authentication with Google
Current Version: v2
Created: 2025-02-10T10:00:00Z
Updated: 2025-02-11T14:30:00Z
2. Task CRUD Operations
ID: feat_002
Description: Create, read, update, and delete tasks
Current Version: v1
Created: 2025-02-10T11:00:00Z
3. Real-time Notifications
ID: feat_003
Current Version: v1
Created: 2025-02-12T09:00:00ZParameters
feature_idUUID of the feature to retrieve
Returns
Feature object with full metadata plus the complete markdown specification content from the current version, fetched from cloud storage
Example
Natural Language Examples:
"Show me the details of feature feat_abc123"
"Get the spec for the User Authentication feature"
"What's in feature feat_xyz789?"
"Read the OAuth authentication feature specification"
Expected Response:
✓ Feature: User Authentication
ID: feat_abc123
Project ID: proj_xyz789
Current Version: v2
Description: OAuth 2.0 authentication with Google and email providers
Created: 2025-02-10T10:00:00Z
Updated: 2025-02-11T14:30:00Z
Specification Content (v2):
# User Authentication Feature
## Overview
Implement OAuth 2.0 authentication supporting Google and email/password login.
## Requirements
- Google OAuth integration
- Email/password authentication
- JWT token-based sessions
- Secure password hashing (bcrypt)
## Acceptance Criteria
- Users can sign in with Google
- Users can register with email/password
- Sessions expire after 7 days
- All passwords hashed with bcrypt (cost factor 12)
## Technical Notes
- Use Passport.js for OAuth
- Store tokens in httpOnly cookies
- Implement CSRF protectionParameters
feature_idUUID of the feature to update
titleNew title for the feature (max 255 characters)
descriptionNew description for the feature
spec_contentUpdated markdown specification content
create_new_versionIf true with spec_content, creates a new version. If false, updates current version in-place. Defaults to false.
Returns
Updated feature object with new title, description, current version number, and updated timestamp
Example
Natural Language Examples:
"Update the title of feature feat_abc123 to 'OAuth 2.1 Authentication System'"
"Change the description of the User Authentication feature to include SAML support"
"Update feature feat_xyz789 spec to add password reset functionality"
"Create a new version of feature feat_abc123 with updated requirements"
Expected Response (metadata update):
✓ Feature updated successfully!
Feature: OAuth 2.1 Authentication System
ID: feat_abc123
Current Version: v2 (unchanged)
Updated: 2025-02-13T10:30:00Z
Expected Response (new version created):
✓ Feature updated with new version!
Feature: User Authentication
ID: feat_abc123
Current Version: v3 (created)
Updated: 2025-02-13T10:30:00Z
A new version has been created to preserve the history of changes.Parameters
feature_idUUID of the feature
versionVersion number to retrieve (e.g., 1, 2, 3)
Returns
Feature version object with version number, full spec content from cloud storage, implementation metadata (which plan implemented it, who, when), and timestamps
Example
Natural Language Examples:
"Show me version 1 of feature feat_abc123"
"Get version 2 of the User Authentication feature"
"What was in the original version of feature feat_xyz789?"
"Show me how the OAuth feature changed from v1 to v2"
Expected Response:
✓ Feature Version: User Authentication v1
Feature ID: feat_abc123
Version: 1
Created: 2025-02-10T10:00:00Z
Implemented By: john@example.com
Implementation Plan: plan_xyz123 (OAuth Implementation Phase 1)
Implemented At: 2025-02-10T15:30:00Z
Specification Content (v1):
# User Authentication Feature
## Overview
Implement basic OAuth 2.0 authentication with Google only.
## Requirements
- Google OAuth integration
- JWT token-based sessions
## Acceptance Criteria
- Users can sign in with Google
- Sessions expire after 7 daysParameters
feature_idUUID of the feature
Returns
Array of feature version objects with version numbers, implementation metadata (plan ID, plan title, implementer email, implementation timestamp), and creation dates. Sorted by version descending (newest first). Also includes the current version number.
Example
Natural Language Examples:
"Show me all versions of feature feat_abc123"
"List version history for the User Authentication feature"
"How many versions does feature feat_xyz789 have?"
"Who implemented each version of the OAuth feature?"
Expected Response:
✓ Version History for User Authentication
Current Version: v3
All Versions (3):
v3 - Created: 2025-02-13T09:00:00Z
Implemented by: sarah@example.com
Plan: plan_def456 (Add SAML Support)
Implemented at: 2025-02-13T16:00:00Z
v2 - Created: 2025-02-11T14:30:00Z
Implemented by: john@example.com
Plan: plan_abc123 (Add Email/Password Auth)
Implemented at: 2025-02-11T18:00:00Z
v1 - Created: 2025-02-10T10:00:00Z
Implemented by: john@example.com
Plan: plan_xyz789 (OAuth Implementation Phase 1)
Implemented at: 2025-02-10T15:30:00ZCommon Use Cases
Defining a New Feature
Start with a clear specification in markdown format. Include requirements, acceptance criteria, and any technical notes:
You: "Create a feature for the Task Manager project for user notifications.
The system should send real-time notifications when tasks are assigned,
completed, or commented on. Use WebSockets for real-time delivery."
Your AI assistant (internally calls create_feature with detailed spec):
✓ Feature created!
Feature: Real-time Notifications
ID: feat_abc123
Current Version: v1
Now ready for implementation planning.Reviewing Feature Details
Before creating an implementation plan, review the full feature specification:
You: "Show me the full spec for the notifications feature"
Your AI assistant (internally calls get_feature):
✓ Feature: Real-time Notifications (v1)
[Full markdown specification displayed]
You: "Create an implementation plan for this feature"
[Your AI assistant now has full context to create a detailed plan]Evolving Requirements
When requirements change, update the feature spec. Choose between in-place updates or creating a new version:
You: "Update the notifications feature to also support email notifications
as a fallback when users are offline"
Your AI assistant (internally calls update_feature):
✓ Feature updated!
Current Version: v2 (new version created)
The updated spec now includes email notification fallback.Tracking Implementation History
View version history to understand how a feature evolved and who implemented each version:
You: "Show me the version history of the User Authentication feature"
Your AI assistant (internally calls list_feature_versions):
✓ Version History for User Authentication
Current Version: v3
v3 - SAML support added (sarah@example.com, 2025-02-13)
v2 - Email/password auth (john@example.com, 2025-02-11)
v1 - Google OAuth only (john@example.com, 2025-02-10)
You: "What was in the original version?"
Your AI assistant (internally calls get_feature_version with version=1):
[Shows v1 spec with Google OAuth only]Organizing Project Features
Use list_features to get an overview of all features in a project:
You: "List all features in the Task Manager project"
Your AI assistant (internally calls list_features):
✓ Features for Task Manager (5):
1. User Authentication (v2)
2. Task CRUD Operations (v1)
3. Real-time Notifications (v2)
4. Team Collaboration (v1)
5. File Attachments (v1)
You: "Let's work on the File Attachments feature"
Your AI assistant: "Let me get the full spec for that..."
(internally calls get_feature for File Attachments)Best Practices
Writing Feature Specifications
- Use markdown formatting for clear, readable specifications
- Include sections for: Overview, Requirements, Acceptance Criteria, Technical Notes
- Be specific about what constitutes "done" for the feature
- Define any status, priority, or custom fields you need in the markdown
- Link to external resources (designs, API docs) when relevant
- Keep specs focused on the "what" and "why", not implementation details
Version Management
- Use in-place updates for minor clarifications or typo fixes
- Create new versions for significant requirement changes
- New versions are created automatically when implementation plans complete
- Use list_feature_versions to track evolution over time
- Version history provides accountability and audit trail
Feature Organization
- Break large features into smaller, implementable units
- Use clear, descriptive titles that indicate the feature's purpose
- Group related features within the same project
- Use get_feature before creating implementation plans to ensure full context
- Review list_features periodically to understand project scope
Collaboration Tips
- Use optional title and description fields as summaries for quick scanning
- Put detailed requirements in the spec_content markdown
- Update features as requirements evolve (don't let specs go stale)
- Use version history to see who implemented what and when
- Reference feature IDs in implementation plans and code comments
Integration with Plans
Features and implementation plans work together to drive development:
Feature → Plan Flow
Create a feature with requirements, then create one or more implementation plans that break down how to build it. Plans reference the feature and contain technical specifications for implementers.
Plan → Version Flow
When a plan is marked "completed", trame automatically creates a new feature version and links it to that plan. This creates a complete audit trail showing which plan implemented which version.
Version History
Use list_feature_versions to see the complete implementation history: which developers worked on it, which plans were used, and when each version was completed.
Next Steps
Now that you understand how to manage features, you're ready to learn about implementation plans - the technical specifications that guide actual development work.
Learn more about implementation planning in the Plan Tools documentation.