@sppg2001/atomize 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -551
- package/{templates/mixins/docs.yaml → catalog/mixins/documentation.atomize.yaml} +1 -1
- package/{templates/mixins/security.yaml → catalog/mixins/security-review.atomize.yaml} +1 -1
- package/{templates/mixins/testing.yaml → catalog/mixins/test-coverage.atomize.yaml} +1 -1
- package/{templates/templates/custom-saved-query.yaml → catalog/templates/agile-story-breakdown-saved-query.atomize.yaml} +2 -2
- package/{templates/templates/custom.yaml → catalog/templates/agile-story-breakdown.atomize.yaml} +2 -2
- package/{templates/templates/bug.yaml → catalog/templates/bug-fix.atomize.yaml} +1 -1
- package/{templates/templates/feature.yaml → catalog/templates/feature-development.atomize.yaml} +1 -1
- package/dist/cli/index.js +17866 -21738
- package/package.json +19 -16
- package/LICENSE +0 -21
- package/docs/Auth-Guide.md +0 -257
- package/docs/Cli-Reference.md +0 -959
- package/docs/Common-Validation-Errors.md +0 -556
- package/docs/Getting-Started.md +0 -540
- package/docs/Platform-Guide.md +0 -662
- package/docs/Story-Learner.md +0 -324
- package/docs/Template-Reference.md +0 -743
- package/docs/Validation-Modes.md +0 -252
- package/docs/template-wizard-guide.md +0 -738
- package/examples/README.md +0 -220
- package/examples/advanced-filtering.yaml +0 -113
- package/examples/backend.yaml +0 -124
- package/examples/conditional-dependencies-template.yaml +0 -145
- package/examples/conditional-percentage-template.yaml +0 -167
- package/examples/frontend.yaml +0 -123
- package/examples/fullstack.yaml +0 -167
- /package/{templates/templates/backend-api.yaml → catalog/templates/backend-api.atomize.yaml} +0 -0
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
version: "1.0"
|
|
2
|
-
name: "Story-Aware Task Allocation"
|
|
3
|
-
description: >
|
|
4
|
-
Demonstrates estimationPercentCondition — each task's weight adapts to
|
|
5
|
-
the story's size and tags. When the conditional frontend-impl task is
|
|
6
|
-
skipped, the remaining tasks carry their already-resolved conditional
|
|
7
|
-
percents into normalization, so the final split is always accurate.
|
|
8
|
-
author: "Atomize"
|
|
9
|
-
tags: ["demo", "conditional-percent", "adaptive"]
|
|
10
|
-
|
|
11
|
-
filter:
|
|
12
|
-
workItemTypes:
|
|
13
|
-
- "User Story"
|
|
14
|
-
excludeIfHasTasks: true
|
|
15
|
-
|
|
16
|
-
estimation:
|
|
17
|
-
strategy: "percentage"
|
|
18
|
-
rounding: "nearest"
|
|
19
|
-
minimumTaskPoints: 0.5
|
|
20
|
-
|
|
21
|
-
tasks:
|
|
22
|
-
# ── Design ────────────────────────────────────────────────────────────────
|
|
23
|
-
# Allocation scales with story size.
|
|
24
|
-
# Small stories (< 5 pts): 10 % — quick design, no surprises expected
|
|
25
|
-
# Medium stories (5–12 pts): 15 % — moderate up-front work
|
|
26
|
-
# Large stories (≥ 13 pts): 20 % — epic-scale requires thorough design
|
|
27
|
-
- id: "design"
|
|
28
|
-
title: "Technical Design & Architecture"
|
|
29
|
-
description: "Define architecture, API contracts, and data models for ${story.title}"
|
|
30
|
-
activity: "Design"
|
|
31
|
-
assignTo: "@ParentAssignee"
|
|
32
|
-
estimationPercent: 10
|
|
33
|
-
estimationPercentCondition:
|
|
34
|
-
- condition:
|
|
35
|
-
field: estimation
|
|
36
|
-
operator: gte
|
|
37
|
-
value: 13
|
|
38
|
-
percent: 20
|
|
39
|
-
- condition:
|
|
40
|
-
field: estimation
|
|
41
|
-
operator: gte
|
|
42
|
-
value: 5
|
|
43
|
-
percent: 15
|
|
44
|
-
tags: ["design"]
|
|
45
|
-
|
|
46
|
-
# ── Backend implementation ─────────────────────────────────────────────────
|
|
47
|
-
# Rules evaluated in order — first match wins.
|
|
48
|
-
#
|
|
49
|
-
# • fullstack tag present → 40 % (budget shared with the frontend task)
|
|
50
|
-
# • medium/large story → 50 % (more surface area to cover carefully)
|
|
51
|
-
# • fallback → 60 % (small, pure-backend story)
|
|
52
|
-
- id: "backend-impl"
|
|
53
|
-
title: "Backend Implementation"
|
|
54
|
-
description: "Implement API endpoints and business logic for ${story.title}"
|
|
55
|
-
activity: "Development"
|
|
56
|
-
assignTo: "@ParentAssignee"
|
|
57
|
-
dependsOn: ["design"]
|
|
58
|
-
estimationPercent: 60
|
|
59
|
-
estimationPercentCondition:
|
|
60
|
-
- condition:
|
|
61
|
-
field: tags
|
|
62
|
-
operator: contains
|
|
63
|
-
value: fullstack
|
|
64
|
-
percent: 40
|
|
65
|
-
- condition:
|
|
66
|
-
field: estimation
|
|
67
|
-
operator: gte
|
|
68
|
-
value: 5
|
|
69
|
-
percent: 50
|
|
70
|
-
tags: ["backend"]
|
|
71
|
-
|
|
72
|
-
# ── Frontend implementation (conditional task) ─────────────────────────────
|
|
73
|
-
# Only created when the story is tagged "fullstack".
|
|
74
|
-
# When this task is SKIPPED, the remaining tasks' resolved conditional
|
|
75
|
-
# percents are used as the baseline for normalization — so Design and
|
|
76
|
-
# Backend get accurate relative weights rather than stale static values.
|
|
77
|
-
#
|
|
78
|
-
# complex-ui tag → extra allocation for non-trivial UIs
|
|
79
|
-
- id: "frontend-impl"
|
|
80
|
-
title: "Frontend Implementation"
|
|
81
|
-
description: "Build UI components and integrate with the API for ${story.title}"
|
|
82
|
-
activity: "Development"
|
|
83
|
-
assignTo: "@ParentAssignee"
|
|
84
|
-
dependsOn: ["design"]
|
|
85
|
-
condition:
|
|
86
|
-
field: tags
|
|
87
|
-
operator: contains
|
|
88
|
-
value: fullstack
|
|
89
|
-
estimationPercent: 30
|
|
90
|
-
estimationPercentCondition:
|
|
91
|
-
- condition:
|
|
92
|
-
field: tags
|
|
93
|
-
operator: contains
|
|
94
|
-
value: complex-ui
|
|
95
|
-
percent: 40
|
|
96
|
-
tags: ["frontend"]
|
|
97
|
-
|
|
98
|
-
# ── Testing & QA ──────────────────────────────────────────────────────────
|
|
99
|
-
# Critical stories need more thorough test coverage.
|
|
100
|
-
# AND-condition is checked first: critical + large ≥ 8 pts → 30 %
|
|
101
|
-
# If only critical (smaller story) → 25 %
|
|
102
|
-
# Otherwise → 20 %
|
|
103
|
-
- id: "testing"
|
|
104
|
-
title: "Testing & QA"
|
|
105
|
-
description: "Write automated tests and perform QA for ${story.title}"
|
|
106
|
-
activity: "Testing"
|
|
107
|
-
assignTo: "@ParentAssignee"
|
|
108
|
-
dependsOn: ["backend-impl"]
|
|
109
|
-
estimationPercent: 20
|
|
110
|
-
estimationPercentCondition:
|
|
111
|
-
- condition:
|
|
112
|
-
all:
|
|
113
|
-
- field: tags
|
|
114
|
-
operator: contains
|
|
115
|
-
value: critical
|
|
116
|
-
- field: estimation
|
|
117
|
-
operator: gte
|
|
118
|
-
value: 8
|
|
119
|
-
percent: 30
|
|
120
|
-
- condition:
|
|
121
|
-
field: tags
|
|
122
|
-
operator: contains
|
|
123
|
-
value: critical
|
|
124
|
-
percent: 25
|
|
125
|
-
tags: ["testing"]
|
|
126
|
-
|
|
127
|
-
# ── Code review ────────────────────────────────────────────────────────────
|
|
128
|
-
# Always 5 % — lightweight overhead regardless of story size or tags.
|
|
129
|
-
# No estimationPercentCondition needed here.
|
|
130
|
-
- id: "code-review"
|
|
131
|
-
title: "Code Review & Documentation"
|
|
132
|
-
description: "Peer review and document all changes for ${story.title}"
|
|
133
|
-
activity: "Documentation"
|
|
134
|
-
assignTo: "@ParentAssignee"
|
|
135
|
-
dependsOn: ["testing"]
|
|
136
|
-
estimationPercent: 5
|
|
137
|
-
tags: ["review", "documentation"]
|
|
138
|
-
|
|
139
|
-
# ── Metadata ─────────────────────────────────────────────────────────────────
|
|
140
|
-
metadata:
|
|
141
|
-
category: "Demo"
|
|
142
|
-
difficulty: "intermediate"
|
|
143
|
-
recommendedFor:
|
|
144
|
-
- "Demonstrating estimationPercentCondition"
|
|
145
|
-
- "Adaptive task weighting by story size or tags"
|
|
146
|
-
estimationGuidelines: |
|
|
147
|
-
Effective resolved percentages by scenario (before normalization):
|
|
148
|
-
|
|
149
|
-
Scenario A — small backend-only story (< 5 pts, no "fullstack" tag):
|
|
150
|
-
design=10 backend=60 testing=20 review=5 → total=95 → normalised to 100
|
|
151
|
-
Scenario B — medium backend-only story (5/12 pts):
|
|
152
|
-
design=15 backend=50 testing=20 review=5 → total=90 → normalised to 100
|
|
153
|
-
Scenario C — medium fullstack story (5/12 pts, "fullstack" tag):
|
|
154
|
-
design=15 backend=40 frontend=30 testing=20 review=5 → total=110 → normalised
|
|
155
|
-
Scenario D — large critical fullstack story (≥ 13 pts, "critical" + "fullstack" tags):
|
|
156
|
-
design=20 backend=40 frontend=30 testing=30 review=5 → total=125 → normalised
|
|
157
|
-
Scenario E — medium critical backend-only story (5/12 pts, "critical", no "fullstack"):
|
|
158
|
-
design=15 backend=50 testing=25 review=5 → total=95 → normalised to 100
|
|
159
|
-
|
|
160
|
-
Key behaviour: when frontend-impl is skipped (no "fullstack" tag) the
|
|
161
|
-
remaining tasks already hold their *resolved* conditional percents before
|
|
162
|
-
normalization runs, so the final ratio reflects the per-story adjustments
|
|
163
|
-
rather than the static fallback values.
|
|
164
|
-
examples:
|
|
165
|
-
- "Small pure-backend story (2 pts, tags: [backend])"
|
|
166
|
-
- "Medium fullstack story (8 pts, tags: [fullstack])"
|
|
167
|
-
- "Large critical fullstack story (13 pts, tags: [fullstack, critical, complex-ui])"
|
package/examples/frontend.yaml
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
version: "1.0"
|
|
2
|
-
name: "Frontend React Feature"
|
|
3
|
-
description: "Standard tasks for React component development"
|
|
4
|
-
author: "Atomize"
|
|
5
|
-
tags: ["frontend", "react", "ui"]
|
|
6
|
-
|
|
7
|
-
filter:
|
|
8
|
-
workItemTypes:
|
|
9
|
-
- "User Story"
|
|
10
|
-
states:
|
|
11
|
-
- "New"
|
|
12
|
-
- "Approved"
|
|
13
|
-
tags:
|
|
14
|
-
include:
|
|
15
|
-
- "frontend"
|
|
16
|
-
- "react"
|
|
17
|
-
excludeIfHasTasks: true
|
|
18
|
-
|
|
19
|
-
tasks:
|
|
20
|
-
- id: "ui-design-review"
|
|
21
|
-
title: " UI/UX Design Review"
|
|
22
|
-
description: |
|
|
23
|
-
Review designs and create implementation plan:
|
|
24
|
-
- Review Figma/design specs
|
|
25
|
-
- Identify reusable components
|
|
26
|
-
- Plan component hierarchy
|
|
27
|
-
- Clarify interactions and states
|
|
28
|
-
estimationPercent: 10
|
|
29
|
-
tags: ["design", "planning"]
|
|
30
|
-
activity: "Design"
|
|
31
|
-
|
|
32
|
-
- id: "component-structure"
|
|
33
|
-
title: "Component Structure & Setup"
|
|
34
|
-
description: |
|
|
35
|
-
Set up component architecture:
|
|
36
|
-
- Create component files
|
|
37
|
-
- Define props interfaces
|
|
38
|
-
- Set up state management
|
|
39
|
-
- Configure routing (if needed)
|
|
40
|
-
estimationPercent: 15
|
|
41
|
-
tags: ["setup", "architecture"]
|
|
42
|
-
activity: "Development"
|
|
43
|
-
|
|
44
|
-
- id: "component-logic"
|
|
45
|
-
title: "Component Logic Implementation"
|
|
46
|
-
description: |
|
|
47
|
-
Implement core functionality:
|
|
48
|
-
- Business logic
|
|
49
|
-
- Event handlers
|
|
50
|
-
- API integration
|
|
51
|
-
- Form validation
|
|
52
|
-
estimationPercent: 30
|
|
53
|
-
tags: ["implementation", "logic"]
|
|
54
|
-
activity: "Development"
|
|
55
|
-
dependsOn:
|
|
56
|
-
- "component-structure"
|
|
57
|
-
|
|
58
|
-
- id: "styling"
|
|
59
|
-
title: "Styling & Responsive Design"
|
|
60
|
-
description: |
|
|
61
|
-
Apply styles and ensure responsiveness:
|
|
62
|
-
- CSS/Tailwind implementation
|
|
63
|
-
- Mobile responsiveness
|
|
64
|
-
- Theme integration
|
|
65
|
-
- Dark mode (if applicable)
|
|
66
|
-
estimationPercent: 20
|
|
67
|
-
tags: ["styling", "css", "responsive"]
|
|
68
|
-
activity: "Development"
|
|
69
|
-
|
|
70
|
-
- id: "accessibility"
|
|
71
|
-
title: "Accessibility Testing"
|
|
72
|
-
description: |
|
|
73
|
-
Ensure WCAG 2.1 AA compliance:
|
|
74
|
-
- Keyboard navigation
|
|
75
|
-
- Screen reader testing
|
|
76
|
-
- ARIA labels
|
|
77
|
-
- Color contrast
|
|
78
|
-
- Focus management
|
|
79
|
-
estimationPercent: 10
|
|
80
|
-
tags: ["accessibility", "a11y", "quality"]
|
|
81
|
-
activity: "Testing"
|
|
82
|
-
|
|
83
|
-
- id: "component-tests"
|
|
84
|
-
title: "Component Testing"
|
|
85
|
-
description: |
|
|
86
|
-
Write comprehensive tests:
|
|
87
|
-
- Jest unit tests
|
|
88
|
-
- React Testing Library
|
|
89
|
-
- Test user interactions
|
|
90
|
-
- Snapshot tests
|
|
91
|
-
estimationPercent: 15
|
|
92
|
-
tags: ["testing", "quality"]
|
|
93
|
-
activity: "Testing"
|
|
94
|
-
dependsOn:
|
|
95
|
-
- "component-logic"
|
|
96
|
-
|
|
97
|
-
# Estimation configuration
|
|
98
|
-
estimation:
|
|
99
|
-
strategy: "percentage"
|
|
100
|
-
source: "Microsoft.VSTS.Scheduling.StoryPoints"
|
|
101
|
-
rounding: "nearest"
|
|
102
|
-
minimumTaskPoints: 0.5
|
|
103
|
-
|
|
104
|
-
# Validation
|
|
105
|
-
validation:
|
|
106
|
-
totalEstimationMustBe: 100
|
|
107
|
-
minTasks: 4
|
|
108
|
-
|
|
109
|
-
# Metadata
|
|
110
|
-
metadata:
|
|
111
|
-
category: "Frontend Development"
|
|
112
|
-
difficulty: "intermediate"
|
|
113
|
-
recommendedFor:
|
|
114
|
-
- "React components"
|
|
115
|
-
- "UI features"
|
|
116
|
-
- "User interfaces"
|
|
117
|
-
estimationGuidelines: |
|
|
118
|
-
Best for stories sized 3-8 points.
|
|
119
|
-
Complex UIs with animations may need additional tasks.
|
|
120
|
-
examples:
|
|
121
|
-
- "User profile page"
|
|
122
|
-
- "Data table component"
|
|
123
|
-
- "Form wizard"
|
package/examples/fullstack.yaml
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
version: "1.0"
|
|
2
|
-
name: "Fullstack Feature"
|
|
3
|
-
description: "Complete fullstack feature with frontend and backend tasks"
|
|
4
|
-
author: "Atomize"
|
|
5
|
-
tags: ["fullstack", "frontend", "backend"]
|
|
6
|
-
|
|
7
|
-
filter:
|
|
8
|
-
workItemTypes:
|
|
9
|
-
- "User Story"
|
|
10
|
-
states:
|
|
11
|
-
- "New"
|
|
12
|
-
- "Active"
|
|
13
|
-
tags:
|
|
14
|
-
include:
|
|
15
|
-
- "fullstack"
|
|
16
|
-
excludeIfHasTasks: true
|
|
17
|
-
|
|
18
|
-
tasks:
|
|
19
|
-
# Design Phase
|
|
20
|
-
- id: "design-overview"
|
|
21
|
-
title: "Technical Design"
|
|
22
|
-
description: |
|
|
23
|
-
Create comprehensive technical design:
|
|
24
|
-
- Architecture diagram
|
|
25
|
-
- API contract definition
|
|
26
|
-
- Data models
|
|
27
|
-
- UI/UX flow
|
|
28
|
-
estimationPercent: 10
|
|
29
|
-
tags: ["design", "planning"]
|
|
30
|
-
activity: "Design"
|
|
31
|
-
|
|
32
|
-
# Backend Tasks
|
|
33
|
-
- id: "backend-api"
|
|
34
|
-
title: " Backend API Implementation"
|
|
35
|
-
description: |
|
|
36
|
-
Implement backend API:
|
|
37
|
-
- API endpoints
|
|
38
|
-
- Business logic
|
|
39
|
-
- Validation
|
|
40
|
-
- Error handling
|
|
41
|
-
estimationPercent: 20
|
|
42
|
-
tags: ["backend", "api"]
|
|
43
|
-
activity: "Development"
|
|
44
|
-
dependsOn: ["design-overview"]
|
|
45
|
-
|
|
46
|
-
- id: "database"
|
|
47
|
-
title: "Database Implementation"
|
|
48
|
-
description: |
|
|
49
|
-
Database changes:
|
|
50
|
-
- Schema migrations
|
|
51
|
-
- Models
|
|
52
|
-
- Queries
|
|
53
|
-
- Indexes
|
|
54
|
-
estimationPercent: 15
|
|
55
|
-
tags: ["database", "backend"]
|
|
56
|
-
activity: "Development"
|
|
57
|
-
condition:
|
|
58
|
-
field: tags
|
|
59
|
-
operator: contains
|
|
60
|
-
value: database
|
|
61
|
-
|
|
62
|
-
- id: "backend-tests"
|
|
63
|
-
title: "Backend Tests"
|
|
64
|
-
description: |
|
|
65
|
-
Backend test coverage:
|
|
66
|
-
- Unit tests (80%+)
|
|
67
|
-
- Integration tests
|
|
68
|
-
- API endpoint tests
|
|
69
|
-
estimationPercent: 10
|
|
70
|
-
tags: ["testing", "backend"]
|
|
71
|
-
activity: "Testing"
|
|
72
|
-
dependsOn: ["backend-api"]
|
|
73
|
-
|
|
74
|
-
# Frontend Tasks
|
|
75
|
-
- id: "frontend-components"
|
|
76
|
-
title: "Frontend Components"
|
|
77
|
-
description: |
|
|
78
|
-
Build React components:
|
|
79
|
-
- Component structure
|
|
80
|
-
- Props interfaces
|
|
81
|
-
- State management
|
|
82
|
-
- Event handlers
|
|
83
|
-
estimationPercent: 20
|
|
84
|
-
tags: ["frontend", "react"]
|
|
85
|
-
activity: "Development"
|
|
86
|
-
dependsOn: ["design-overview"]
|
|
87
|
-
|
|
88
|
-
- id: "frontend-styling"
|
|
89
|
-
title: "Styling & Responsive Design"
|
|
90
|
-
description: |
|
|
91
|
-
Apply styles:
|
|
92
|
-
- CSS/Tailwind
|
|
93
|
-
- Mobile responsive
|
|
94
|
-
- Theme integration
|
|
95
|
-
estimationPercent: 10
|
|
96
|
-
tags: ["frontend", "styling"]
|
|
97
|
-
activity: "Development"
|
|
98
|
-
|
|
99
|
-
- id: "frontend-tests"
|
|
100
|
-
title: "Frontend Tests"
|
|
101
|
-
description: |
|
|
102
|
-
Frontend test coverage:
|
|
103
|
-
- Component tests
|
|
104
|
-
- User interaction tests
|
|
105
|
-
- Snapshot tests
|
|
106
|
-
estimationPercent: 8
|
|
107
|
-
tags: ["testing", "frontend"]
|
|
108
|
-
activity: "Testing"
|
|
109
|
-
dependsOn: ["frontend-components"]
|
|
110
|
-
|
|
111
|
-
# Integration
|
|
112
|
-
- id: "integration"
|
|
113
|
-
title: "Frontend-Backend Integration"
|
|
114
|
-
description: |
|
|
115
|
-
Connect frontend to backend:
|
|
116
|
-
- API integration
|
|
117
|
-
- Error handling
|
|
118
|
-
- Loading states
|
|
119
|
-
- Data flow testing
|
|
120
|
-
estimationPercent: 12
|
|
121
|
-
tags: ["integration"]
|
|
122
|
-
activity: "Development"
|
|
123
|
-
dependsOn: ["backend-api", "frontend-components"]
|
|
124
|
-
|
|
125
|
-
# Documentation & Review
|
|
126
|
-
- id: "documentation"
|
|
127
|
-
title: "Documentation"
|
|
128
|
-
description: |
|
|
129
|
-
Complete documentation:
|
|
130
|
-
- API documentation
|
|
131
|
-
- Component documentation
|
|
132
|
-
- README updates
|
|
133
|
-
- Deployment guide
|
|
134
|
-
estimationPercent: 5
|
|
135
|
-
tags: ["documentation"]
|
|
136
|
-
activity: "Documentation"
|
|
137
|
-
|
|
138
|
-
# Estimation configuration
|
|
139
|
-
estimation:
|
|
140
|
-
strategy: "percentage"
|
|
141
|
-
source: "Microsoft.VSTS.Scheduling.StoryPoints"
|
|
142
|
-
rounding: "nearest"
|
|
143
|
-
minimumTaskPoints: 0.5
|
|
144
|
-
|
|
145
|
-
# Validation
|
|
146
|
-
validation:
|
|
147
|
-
totalEstimationRange:
|
|
148
|
-
min: 95
|
|
149
|
-
max: 105
|
|
150
|
-
minTasks: 5
|
|
151
|
-
|
|
152
|
-
# Metadata
|
|
153
|
-
metadata:
|
|
154
|
-
category: "Fullstack Development"
|
|
155
|
-
difficulty: "advanced"
|
|
156
|
-
recommendedFor:
|
|
157
|
-
- "Full features with UI and API"
|
|
158
|
-
- "Complete user flows"
|
|
159
|
-
- "End-to-end features"
|
|
160
|
-
estimationGuidelines: |
|
|
161
|
-
Best for stories sized 5-13 points.
|
|
162
|
-
This template covers both frontend and backend.
|
|
163
|
-
Adjust tasks based on complexity.
|
|
164
|
-
examples:
|
|
165
|
-
- "User registration flow"
|
|
166
|
-
- "Dashboard with data visualization"
|
|
167
|
-
- "Search and filter feature"
|
/package/{templates/templates/backend-api.yaml → catalog/templates/backend-api.atomize.yaml}
RENAMED
|
File without changes
|