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.

Flexible Specifications
Features in trame use markdown specifications that can contain any structure you need. Title and description are optional metadata - all your feature details can live in the markdown spec.

Feature Lifecycle

Features evolve through versions as they are implemented and refined. Understanding the lifecycle helps you work effectively with features:

1

Create Feature

Start by creating a feature with a markdown specification. Version 1 is created automatically and stored in cloud storage (Google Cloud Storage).
2

Implement Feature

Implementation plans reference the feature and guide the work. When a plan is completed, a new feature version is created automatically, linking the implementation to the feature.
3

Update Specification

As requirements evolve, update the feature spec. You can update in-place or create a new version to preserve history.
4

Track Versions

View version history to see how the feature has evolved, who implemented each version, and which plans were used.

Tool Reference

create_feature
Create a new feature within a project. The feature spec is stored as markdown in cloud storage, with version 1 created automatically.

Parameters

project_id
string
required

UUID of the project this feature belongs to

title
string

Optional short title for the feature (max 255 characters)

description
string

Optional brief description of the feature

spec_content
string
required

Markdown 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.
No Status or Priority Fields
Features don't have built-in status or priority fields in the database. Define these in your markdown specification as needed for your workflow. This keeps the system flexible to different project management approaches.
list_features
List all features for a project. Returns feature metadata only - use get_feature to retrieve the full specification content.

Parameters

project_id
string
required

UUID 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:00Z
get_feature
Get a feature with its current version specification content. This retrieves the full markdown spec from cloud storage, giving you everything needed to understand or work on the feature.

Parameters

feature_id
string
required

UUID 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 protection
Access Control
You can only access features in projects where you are a member. Attempting to access a feature from a project you don't belong to will return a permission error.
update_feature
Update feature metadata or specification content. You can update the title/description without creating a new version, or update the spec content either in-place or as a new version.

Parameters

feature_id
string
required

UUID of the feature to update

title
string

New title for the feature (max 255 characters)

description
string

New description for the feature

spec_content
string

Updated markdown specification content

create_new_version
boolean

If 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.
get_feature_version
Get a specific version of a feature with its spec content. Useful for reviewing historical versions or comparing how a feature evolved over time.

Parameters

feature_id
string
required

UUID of the feature

version
number
required

Version 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 days
list_feature_versions
List all versions for a feature, showing the evolution history. Includes implementation metadata to see which plans and developers implemented each version.

Parameters

feature_id
string
required

UUID 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:00Z
Automatic Version Creation
When an implementation plan is marked as "completed", trame automatically creates a new feature version and links it to that plan. This creates a complete audit trail of how features evolved through implementations.

Common 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.