Files
renamer/.specify/templates/spec-template.md

4.6 KiB

Feature Specification: [FEATURE NAME]

Feature Branch: [###-feature-name]
Created: [DATE]
Status: Draft
Input: User description: "$ARGUMENTS"

User Scenarios & Testing (mandatory)

User Story 1 - [Brief Title] (Priority: P1)

[Describe this user journey in plain language]

Why this priority: [Explain the value and why it has this priority level]

Independent Test: [Describe how this can be tested independently - e.g., "Can be fully tested by [specific action] and delivers [specific value]"]

Acceptance Scenarios:

  1. Given [initial state], When [action], Then [expected outcome]
  2. Given [initial state], When [action], Then [expected outcome]

User Story 2 - [Brief Title] (Priority: P2)

[Describe this user journey in plain language]

Why this priority: [Explain the value and why it has this priority level]

Independent Test: [Describe how this can be tested independently]

Acceptance Scenarios:

  1. Given [initial state], When [action], Then [expected outcome]

User Story 3 - [Brief Title] (Priority: P3)

[Describe this user journey in plain language]

Why this priority: [Explain the value and why it has this priority level]

Independent Test: [Describe how this can be tested independently]

Acceptance Scenarios:

  1. Given [initial state], When [action], Then [expected outcome]

[Add more user stories as needed, each with an assigned priority]

Edge Cases

  • How does the rename plan handle conflicting target names or read-only files?
  • What is the expected behavior when the .renamer ledger is missing, corrupted, or out of sync?
  • How are case-only renames or Unicode normalization differences managed across platforms?
  • What feedback is provided when an extension filter yields zero matches or contains invalid tokens?

Requirements (mandatory)

Functional Requirements

  • FR-001: CLI MUST generate a deterministic preview of all pending renames before execution.
  • FR-002: Users MUST confirm the preview (or abort) prior to any filesystem changes.
  • FR-003: The tool MUST append every confirmed batch to the .renamer ledger with sufficient metadata for undo.
  • FR-004: Users MUST be able to undo the most recent batch safely, even across process restarts.
  • FR-005: CLI MUST support directory targeting (-d) and optional recursive traversal (-r) with clear scope boundaries.
  • FR-006: CLI MUST accept an extension filter flag (-e) that parses .-prefixed, |-delimited extensions and applies the filter consistently across preview, execute, and undo flows.

Example of marking unclear requirements:

  • FR-007: CLI MUST support additional rename rule [RULE_NAME] [NEEDS CLARIFICATION: inputs/outputs not defined]
  • FR-008: CLI MUST expose automation-friendly output [NEEDS CLARIFICATION: format (JSON, plain text) undecided]

Key Entities (include if feature involves data)

  • RenameBatch: Represents a single preview/execute cycle; attributes include rules applied, timestamp, working directory, and file mappings.
  • RuleDefinition: Captures configuration for a rename rule (inputs, validations, dependencies) without binding to implementation.

Success Criteria (mandatory)

Measurable Outcomes

  • SC-001: [Measurable metric, e.g., "Users can complete account creation in under 2 minutes"]
  • SC-002: [Measurable metric, e.g., "System handles 1000 concurrent users without degradation"]
  • SC-003: [User satisfaction metric, e.g., "90% of users successfully complete primary task on first attempt"]
  • SC-004: [Business metric, e.g., "Reduce support tickets related to [X] by 50%"]