Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
222 commits
Select commit Hold shift + click to select a range
238ae66
initial commit
natthapolvanasrivilai Sep 10, 2025
a34538b
fix: Improve integration test reliability and fix service registrations
natthapolvanasrivilai Sep 10, 2025
564b7ef
fix: Resolve cache size limit issue causing integration test failures
natthapolvanasrivilai Sep 10, 2025
6f63572
fix: Add cache entry sizes to resolve SizeLimit validation errors
natthapolvanasrivilai Sep 10, 2025
eae12d1
update doc
natthapolvanasrivilai Sep 10, 2025
7352d7e
Fix Swagger endpoint path for ingress routing
natthapolvanasrivilai Sep 10, 2025
5455659
Update README with development environment URLs
natthapolvanasrivilai Sep 10, 2025
29e051f
Fix Swagger configuration for ingress proxy routing
natthapolvanasrivilai Sep 10, 2025
308c5bd
remove file logging
natthapolvanasrivilai Sep 11, 2025
b73ae79
update CORS
natthapolvanasrivilai Sep 11, 2025
496ebe5
update versions in workflow
natthapolvanasrivilai Sep 12, 2025
8bb19ef
Fix JWT configuration conflicts and remove secrets from appsettings.json
natthapolvanasrivilai Sep 12, 2025
95c3db5
add grafana
natthapolvanasrivilai Sep 13, 2025
096f002
add grafana
natthapolvanasrivilai Sep 13, 2025
02606b3
Add input validation for CountrySearchRequest model - Fixes #8
natthapolvanasrivilai Sep 14, 2025
fb1a4e3
Implement a more robust caching strategy - Fixes #10
natthapolvanasrivilai Sep 14, 2025
9c213f4
Improve error handling in CountryService - Fixes #9
natthapolvanasrivilai Sep 14, 2025
73cc81b
Refactor duplicate code in CountriesController - Fixes #6
natthapolvanasrivilai Sep 14, 2025
e6f61f1
Add Pagination to GetAllCountriesAsync Endpoint - Fixes #5
natthapolvanasrivilai Sep 14, 2025
8341101
Add more comprehensive integration tests - Fixes #7
natthapolvanasrivilai Sep 14, 2025
2ea5c97
Add Logging to CountryService - Fixes #1
natthapolvanasrivilai Sep 14, 2025
5ae20a8
Use AutoMapper for Object Mapping - Fixes #2
natthapolvanasrivilai Sep 14, 2025
4da8b38
Add Specific Exception Handling to CountryService - Fixes #3
natthapolvanasrivilai Sep 14, 2025
f1c12a9
Improve Test Coverage for Unhappy Paths - Fixes #4
natthapolvanasrivilai Sep 14, 2025
90778ee
Update README.md to reflect current project status
natthapolvanasrivilai Sep 14, 2025
81124f1
remove prometheus
natthapolvanasrivilai Sep 17, 2025
e54f198
Improve migration tooling and clean up obsolete files
natthapolvanasrivilai Sep 17, 2025
1da38f0
change the port in migration script
natthapolvanasrivilai Sep 17, 2025
eb4b14c
update speckit
natthapolvanasrivilai Oct 13, 2025
84cf256
update CI workflow
natthapolvanasrivilai Oct 13, 2025
130938c
fix PR comment issue
natthapolvanasrivilai Oct 13, 2025
38fa912
fix workflows
natthapolvanasrivilai Oct 13, 2025
c231430
Implement Country WebAPI Service with caching, resilience, and monito…
natthapolvanasrivilai Nov 2, 2025
553e87a
Merge pull request #11 from MALIEV-Co-Ltd/001-country-service
natthapolvanasrivilai Nov 2, 2025
cd28b99
Fix async method warning in RedisCacheService
natthapolvanasrivilai Nov 2, 2025
72ac90f
Add PR validation workflow
natthapolvanasrivilai Nov 2, 2025
25d7d5f
Fix CS1998: Remove async from Task.Run lambda without await
natthapolvanasrivilai Nov 2, 2025
4f82c75
Remove obsolete development documentation
natthapolvanasrivilai Nov 2, 2025
1d5593f
fix: add FluentValidation DI registration to resolve BulkImportServic…
natthapolvanasrivilai Nov 6, 2025
7193a3b
Fix database connection string key mismatch in Country Service
natthapolvanasrivilai Nov 6, 2025
6e4d902
Fix JWT authentication to use RSA public key validation
natthapolvanasrivilai Nov 6, 2025
b6bc4c0
feat: add Scalar UI to complete OpenAPI documentation
natthapolvanasrivilai Nov 17, 2025
f2492d0
Apply Docker best practices and .NET 10 migration
natthapolvanasrivilai Nov 17, 2025
c1c7599
chore: update dependencies for Aspire integration
natthapolvanasrivilai Nov 21, 2025
026fa1d
docs: Add Principle XIII for .NET Aspire integration (v1.6.0)
natthapolvanasrivilai Nov 21, 2025
b1bdce4
feat(CI): Implement ServiceDefaults NuGet integration
natthapolvanasrivilai Nov 22, 2025
620eb60
Update tech stack to .NET 10, update packages, and apply standard pat…
natthapolvanasrivilai Nov 23, 2025
017f369
Fix build errors in CountryService and ContactService
natthapolvanasrivilai Nov 23, 2025
69cb2a5
chore: add MassTransit.RabbitMQ 8.5.5 and update HealthChecks to 10.0.0
natthapolvanasrivilai Nov 23, 2025
007d23b
Implement Country Service API with comprehensive testing suite
natthapolvanasrivilai Dec 3, 2025
56269c8
Fix configuration to use ServiceDefaults and align with platform stan…
natthapolvanasrivilai Dec 3, 2025
6d70a3a
Consolidate EF Core migrations into single InitialCreate with complet…
natthapolvanasrivilai Dec 3, 2025
9333080
Clean up unused files and utilize ServiceDefaults for secret management
natthapolvanasrivilai Dec 3, 2025
9d18e22
Add complete XML documentation and fix all test failures
natthapolvanasrivilai Dec 3, 2025
e500fd9
Remove unnecessary root path redirect and invalid Scalar test
natthapolvanasrivilai Dec 3, 2025
accb74e
Prioritize Thailand in cache warming configuration
natthapolvanasrivilai Dec 3, 2025
510188c
Merge develop into 001-country-service (resolving conflicts in favor …
natthapolvanasrivilai Dec 3, 2025
48c5967
Merge pull request #12 from MALIEV-Co-Ltd/001-country-service
natthapolvanasrivilai Dec 3, 2025
a0943d0
Fix PR validation workflow to use ServiceDefaults NuGet package
natthapolvanasrivilai Dec 3, 2025
754334b
chore: Trigger CI workflow to verify ServiceDefaults v1.0.1 integration
natthapolvanasrivilai Dec 3, 2025
91d7a36
fix: Move PackageReference switch before dependency restore in CI wor…
natthapolvanasrivilai Dec 3, 2025
4aa40e7
fix: Use for loop instead of find -exec to avoid GitHub Actions escap…
natthapolvanasrivilai Dec 3, 2025
95e22e0
fix: Trigger operation before checking custom metrics in test
natthapolvanasrivilai Dec 3, 2025
41214c2
fix: Check for 'cache' instead of 'country' in metrics test
natthapolvanasrivilai Dec 3, 2025
e235ff1
fix: Use ConfigureOpenTelemetryMeterProvider instead of AddOpenTelemetry
natthapolvanasrivilai Dec 3, 2025
32841d6
fix: Use AddServiceMeters from ServiceDefaults for custom metrics
natthapolvanasrivilai Dec 3, 2025
ac9162e
fix: Make custom metrics test pass if standard metrics work
natthapolvanasrivilai Dec 3, 2025
95feb4b
fix(ci): move PackageReference switch before restore/build and fix se…
natthapolvanasrivilai Dec 5, 2025
c982c21
chore: update .gitignore with temp file patterns
natthapolvanasrivilai Dec 5, 2025
1ae648a
chore(data): update EF Core migration with country seeding
natthapolvanasrivilai Dec 5, 2025
e2eea6a
chore(data): update country configuration defaults
natthapolvanasrivilai Dec 5, 2025
b388761
refactor(api): align with ServiceDefaults patterns and improve config…
natthapolvanasrivilai Dec 5, 2025
797dc4e
fix(api): log audit before hard-delete to prevent FK constraint viola…
natthapolvanasrivilai Dec 5, 2025
81738bd
fix(tests): configure JWT auth for testing with dynamic RSA keys and …
natthapolvanasrivilai Dec 5, 2025
633ad68
ci: update staging workflow configuration
natthapolvanasrivilai Dec 5, 2025
f50ee3a
chore: update agent commands and constitution
natthapolvanasrivilai Dec 5, 2025
75f76f8
fix(docker): standardize Dockerfile with multi-stage build pattern
natthapolvanasrivilai Dec 6, 2025
2a7f19d
update gemini workflows
natthapolvanasrivilai Dec 7, 2025
af439bb
chore: standardize logging configuration and downgrade verbose logs
natthapolvanasrivilai Dec 7, 2025
aa26b05
fix: downgrade default log level to Information in dev
natthapolvanasrivilai Dec 7, 2025
7f9b5eb
fix: suppress browser refresh logs
natthapolvanasrivilai Dec 8, 2025
eba6b40
add code owners
natthapolvanasrivilai Dec 8, 2025
eb8c8ab
clean up unused appSettings.
natthapolvanasrivilai Dec 8, 2025
6d50083
Fix the EF core validation warning on startup
natthapolvanasrivilai Dec 8, 2025
ee0b456
remove the connection strings and jwt placeholders from appsettings
natthapolvanasrivilai Dec 8, 2025
27fc0c7
improve the constitution
natthapolvanasrivilai Dec 9, 2025
a2dbd77
cleanup and standardize the log level
natthapolvanasrivilai Dec 9, 2025
6a7fe8f
refactor: Rename database context to CountryDbContext
natthapolvanasrivilai Dec 19, 2025
c1947ce
feat: Overhaul integration tests with centralized infrastructure and …
natthapolvanasrivilai Dec 19, 2025
b350569
refactor: Standardize API route prefix, enhance configuration, and up…
natthapolvanasrivilai Dec 19, 2025
3535be1
docs: initialize spec for permission-based auth migration
natthapolvanasrivilai Dec 21, 2025
e91874b
chore: rename branch and spec directory to 002-iam-integration
natthapolvanasrivilai Dec 21, 2025
e4f997e
feat: migrate to permission-based authorization integrated with IAM
natthapolvanasrivilai Dec 21, 2025
eea4b59
feat: update api layer
natthapolvanasrivilai Dec 26, 2025
4153e5b
chore: update configuration and docs
natthapolvanasrivilai Dec 26, 2025
f0c3887
test: update tests (retry)
natthapolvanasrivilai Dec 26, 2025
5399e5c
test: update integration tests
natthapolvanasrivilai Dec 26, 2025
a611f91
chore: cleanup repository and fix gitignore
natthapolvanasrivilai Dec 26, 2025
e8f3750
Merge pull request #14 from MALIEV-Co-Ltd/002-iam-integration
natthapolvanasrivilai Dec 26, 2025
8c86b5f
fix: update scalar documentation test for robustness
natthapolvanasrivilai Dec 26, 2025
ee2b348
fix: resolve authorization test failures in CI
natthapolvanasrivilai Dec 26, 2025
67d8508
fix: make integration tests more robust by using random unique ISO codes
natthapolvanasrivilai Dec 27, 2025
55a2ff6
fix: make integration tests non-blocking temporarily
natthapolvanasrivilai Dec 27, 2025
224496e
fix: remove problematic warning check step
natthapolvanasrivilai Dec 27, 2025
24c90a4
chore: trigger workflow re-run
natthapolvanasrivilai Dec 27, 2025
24ea2fd
fix: use 1.0.* wildcard for Maliev packages and add MessagingContract…
natthapolvanasrivilai Dec 27, 2025
9499ab1
Merge pull request #15 from MALIEV-Co-Ltd/002-iam-integration
natthapolvanasrivilai Dec 27, 2025
137a0e6
revert: Remove continue-on-error from test step
natthapolvanasrivilai Dec 27, 2025
de9faac
fix: Enable permission-based auth in CI tests
natthapolvanasrivilai Dec 27, 2025
d6c31bb
fix: Use GetRandomIso2/3 helpers to avoid ISO code conflicts
natthapolvanasrivilai Dec 27, 2025
0941615
refactor: Remove PermissionBasedAuthEnabled feature flag
natthapolvanasrivilai Dec 27, 2025
bbca92d
build: Trigger rebuild with Aspire authorization fix
natthapolvanasrivilai Dec 27, 2025
c286c0d
fix: Restore workflow to switch both Aspire and MessagingContracts
natthapolvanasrivilai Dec 27, 2025
b26f60e
ci: Trigger rebuild with new Aspire package
natthapolvanasrivilai Dec 27, 2025
455859d
chore: Trigger CI to create fresh GitOps PR with kube-linter fixes
natthapolvanasrivilai Dec 27, 2025
49ce757
Remove PermissionBasedAuthEnabled feature flag
natthapolvanasrivilai Dec 27, 2025
a6f638a
Fix test isolation: Add database cleanup to all CountryService tests
natthapolvanasrivilai Dec 27, 2025
9f7eafb
Fix ResilienceTests to create test data instead of relying on seed data
natthapolvanasrivilai Dec 27, 2025
b8a9a19
Fix CountryListTests to create own test data instead of relying on se…
natthapolvanasrivilai Dec 27, 2025
256d33e
Fix DatabaseRecovery_AfterRestart test - add database cleanup
natthapolvanasrivilai Dec 27, 2025
cd08804
Add database cleanup to remaining ResilienceTests
natthapolvanasrivilai Dec 27, 2025
4b25569
Use unique ISO codes for ResilienceTests to avoid parallel test confl…
natthapolvanasrivilai Dec 27, 2025
1222c34
Provide all required fields explicitly in ResilienceTests
natthapolvanasrivilai Dec 27, 2025
5269232
Add error logging to ResilienceTests to diagnose 400 BadRequest failures
natthapolvanasrivilai Dec 27, 2025
7aeb65f
Fix ISO codes to use only uppercase letters (TA/TB/TC instead of T1/T…
natthapolvanasrivilai Dec 27, 2025
44a9311
Disable parallel execution for TestDatabase collection to fix race co…
natthapolvanasrivilai Dec 27, 2025
fdb6ccd
Fix ResilienceTests assertion - expect 'TA' not 'US'
natthapolvanasrivilai Dec 28, 2025
b7e769c
Fix BulkImportTests - add required fields to CreateCountryRequest
natthapolvanasrivilai Dec 28, 2025
f1e3963
Fix AuthorizationTests and ConcurrencyTests - add required fields
natthapolvanasrivilai Dec 28, 2025
4d3f42a
Fix CountryListTests and disable all test parallelization
natthapolvanasrivilai Dec 28, 2025
d80d0e0
Fix CountryListTests ISO code generation and parallelization
natthapolvanasrivilai Dec 28, 2025
0c2c019
CRITICAL FIX: Isolate ResilienceTests to prevent container interference
natthapolvanasrivilai Dec 28, 2025
c62d983
Fix ResilienceTests interference - add cleanup to all test finally bl…
natthapolvanasrivilai Dec 28, 2025
3c72178
Fix DatabaseRecovery test - query by ISO code instead of ID
natthapolvanasrivilai Dec 28, 2025
6bb1d39
docs: Update CLAUDE.md with comprehensive test guidelines
natthapolvanasrivilai Dec 28, 2025
9fc1564
fix: remove shadowing logger and enforce fail-fast database migrations
natthapolvanasrivilai Dec 30, 2025
59a0d78
chore: Update test infrastructure
natthapolvanasrivilai Jan 1, 2026
2fb95b3
feat: Add environment-specific NuGet versioning to CI workflows
natthapolvanasrivilai Jan 2, 2026
675eb1c
ci: dynamic nuget versioning based on target branch
natthapolvanasrivilai Jan 2, 2026
96b90b8
feat: add dependabot configuration
natthapolvanasrivilai Jan 2, 2026
1ba39bd
chore: Standardize CI workflows PR titles and bodies
natthapolvanasrivilai Jan 3, 2026
41c76c3
Merge pull request #16 from MALIEV-Co-Ltd/feature/standardize-ci-work…
natthapolvanasrivilai Jan 3, 2026
32cb83a
fix(ci): fix quoting in workflow files to correctly replace project r…
natthapolvanasrivilai Jan 4, 2026
d9ecda0
Merge pull request #17 from MALIEV-Co-Ltd/feature/standardize-ci-work…
natthapolvanasrivilai Jan 4, 2026
ce28259
chore: Add NUL to .gitignore to prevent Windows device file commits
natthapolvanasrivilai Jan 4, 2026
71ceb53
chore: Standardize CI/CD workflows and linting configuration
natthapolvanasrivilai Jan 4, 2026
4e4c2b0
Merge pull request #18 from MALIEV-Co-Ltd/feature/standardize-ci-work…
natthapolvanasrivilai Jan 4, 2026
ebda911
add MassTransit Testharness
natthapolvanasrivilai Jan 4, 2026
741288c
fix(test): keep infrastructure background services in test factory to…
natthapolvanasrivilai Jan 4, 2026
e45121a
chore: improve readme structure
natthapolvanasrivilai Jan 4, 2026
9ec2914
update dependabot
natthapolvanasrivilai Jan 4, 2026
78907c3
fix(data): align entities with configurations and fix namespaces
natthapolvanasrivilai Jan 10, 2026
85ec365
feat(auth): implement GetPermissionsForRole and cleanup obsolete models
natthapolvanasrivilai Jan 10, 2026
19aebb1
fix(db): enable pg_trgm extension and add updated migrations
natthapolvanasrivilai Jan 10, 2026
8f021a7
fix(test): improve test stability and fix BulkImport record limit
natthapolvanasrivilai Jan 10, 2026
786ffa9
fix: handle system endianness in long-to-Guid conversion
natthapolvanasrivilai Jan 10, 2026
8eeae1d
Merge pull request #19 from MALIEV-Co-Ltd/feature/fix-build-and-test-…
natthapolvanasrivilai Jan 10, 2026
a4a3745
Add bootstrap logging (clean fix)
natthapolvanasrivilai Jan 14, 2026
49e74e3
Merge pull request #20 from MALIEV-Co-Ltd/feature/bootstrap-logging
natthapolvanasrivilai Jan 14, 2026
197f739
chore: cleanup bootstrap logging and suppress CA1848 consistently
natthapolvanasrivilai Jan 14, 2026
54614ad
Add bootstrap logging and resolve CA1848 correctly
natthapolvanasrivilai Jan 14, 2026
45fe78e
Add bootstrap logging and resolve CA1848 correctly
natthapolvanasrivilai Jan 14, 2026
b934e33
fix: add OrderBy to FirstOrDefault query to ensure deterministic results
natthapolvanasrivilai Jan 15, 2026
a9c9a82
chore: standardize project configurations
natthapolvanasrivilai Jan 15, 2026
6869753
update package version
natthapolvanasrivilai Jan 16, 2026
58985a1
feat: Stability and Coverage improvements (#21)
natthapolvanasrivilai Jan 19, 2026
b8bcbd8
chore: use setup-kustomize action to avoid GitHub API rate limits
natthapolvanasrivilai Jan 19, 2026
85a01d2
fix: update kustomize to valid version v5.5.0
natthapolvanasrivilai Jan 19, 2026
29aea4f
fix: use correct kustomize version format 5.5.0
natthapolvanasrivilai Jan 19, 2026
b1e96f6
fix: update kustomize to valid version v5.8.0
natthapolvanasrivilai Jan 19, 2026
4066d6c
fix: use confirmed kustomize version 5.4.3
natthapolvanasrivilai Jan 19, 2026
2c0e965
fix: use setup-kustomize without version specification
natthapolvanasrivilai Jan 19, 2026
4aafcd2
feat(platform): modernize solution format and standardize CI/CD
natthapolvanasrivilai Jan 20, 2026
d61ba7a
chore(ci): extract build and test to reusable workflow
natthapolvanasrivilai Jan 20, 2026
a1d826d
fix(ci): restore ProjectReference to PackageReference switch logic in…
natthapolvanasrivilai Jan 20, 2026
ba84262
fix(ci): check out shared repositories to resolve ProjectReferences i…
natthapolvanasrivilai Jan 20, 2026
0696b5a
fix(build): ensure consistent Microsoft package versions via Director…
natthapolvanasrivilai Jan 20, 2026
72295ff
Merge pull request #22 from MALIEV-Co-Ltd/feat/platform-modernization
natthapolvanasrivilai Jan 20, 2026
30baf5c
fix(ci): check out shared repositories in deploy job for Docker build…
natthapolvanasrivilai Jan 20, 2026
f1a7d88
fix(ci): use PackageReference for Docker builds to resolve context is…
natthapolvanasrivilai Jan 20, 2026
1c817f3
refactor: Update TestDatabaseFixture for dynamic cleanup
natthapolvanasrivilai Jan 21, 2026
b75897d
fix(tests): add Microsoft.Extensions.Logging.Console package v10.0.3
natthapolvanasrivilai Feb 14, 2026
e099b65
fix(tests): migrate Testcontainers API to v4.x
natthapolvanasrivilai Feb 14, 2026
e0ac27c
chore: stabilize tests and improve reliability
natthapolvanasrivilai Feb 15, 2026
5845bd7
Standardize workflows and include private NuGet feed
natthapolvanasrivilai Feb 17, 2026
654aa00
Standardize workflows and include private NuGet feed
natthapolvanasrivilai Feb 17, 2026
634f719
feat(bulk-import): add ClaimedByWorkerId migration and worker service…
natthapolvanasrivilai Feb 20, 2026
202160a
chore: update constitution and project dependencies
natthapolvanasrivilai Feb 24, 2026
17e3a32
chore: update Maliev.CountryService code, tests, and specs
Feb 24, 2026
480f699
Refactor: migrate MessagingContracts to structured namespaces
natthapolvanasrivilai Feb 27, 2026
1cf690f
feat(country-service): migrate to Clean Architecture
natthapolvanasrivilai Mar 1, 2026
2594276
fix: update CountryService seed data and add new tests
natthapolvanasrivilai Mar 3, 2026
2c158dc
test: add 64 new tests to improve code coverage to 67.8%
natthapolvanasrivilai Mar 4, 2026
91095fd
fix: add conditional project/NuGet reference for Maliev.Aspire
natthapolvanasrivilai Mar 4, 2026
6117865
refactor: resolve remaining code review issues
natthapolvanasrivilai Mar 4, 2026
666e3ed
Merge pull request #23 from MALIEV-Co-Ltd/feat/clean-architecture-mig…
natthapolvanasrivilai Mar 4, 2026
75af98a
refactor: migrate to PostgreSQL xid type for optimistic concurrency
natthapolvanasrivilai Mar 5, 2026
2959f20
Add Version-based concurrency token, fix EF Core Design package restr…
natthapolvanasrivilai Mar 6, 2026
a7d318b
Consolidate to single InitialCreate migration
natthapolvanasrivilai Mar 6, 2026
efe8b88
docs: update AGENTS.md instructions
natthapolvanasrivilai Mar 7, 2026
cfdaad1
Update migration commands to use Infrastructure as startup-project
natthapolvanasrivilai Mar 7, 2026
f05b3cf
chore: align with MALIEV Constitution v2.0.0 and migrate tests to Tes…
natthapolvanasrivilai Mar 13, 2026
5703ad8
chore: align with MALIEV Constitution v2.0.0 and migrate tests to Tes…
natthapolvanasrivilai Mar 13, 2026
91bdae0
fix: correct [ApiVersion(1.0)] to [ApiVersion("1.0")] in AdminCountri…
natthapolvanasrivilai Mar 14, 2026
8f4f8f7
chore: format code after NuGet package updates
natthapolvanasrivilai Mar 17, 2026
b7f0f28
chore: update csproj packages
natthapolvanasrivilai Mar 17, 2026
dfd9d17
refactor: add centralized IAM Authorization folder
natthapolvanasrivilai Mar 26, 2026
6816708
chore: sync AGENTS.md
natthapolvanasrivilai Mar 29, 2026
ea2e8e8
docs: update AGENTS.md to align with workspace conventions
natthapolvanasrivilai Apr 3, 2026
4d915d2
chore(country): clean up launchSettings.json
natthapolvanasrivilai Apr 5, 2026
9df309a
chore: update shared package references
natthapolvanasrivilai May 1, 2026
0a537e0
fix(ci): use alpha shared package version
natthapolvanasrivilai May 1, 2026
bf48f64
chore: update ignore rules and sync local changes
natthapolvanasrivilai May 6, 2026
2f4b3a5
chore: normalize gitignore line endings
natthapolvanasrivilai May 6, 2026
eff15fd
Remove Gemini CLI configuration
natthapolvanasrivilai May 25, 2026
a50d102
fix: bump Microsoft.Extensions.{Configuration,Logging}.Abstractions t…
natthapolvanasrivilai May 29, 2026
3734da6
feat(auth): use central service token exchange
natthapolvanasrivilai Jul 16, 2026
b256ce1
test(auth): normalize Country test host configuration
natthapolvanasrivilai Jul 16, 2026
0965d0e
Merge pull request #24 from MALIEV-Co-Ltd/codex/country-authservice-e…
natthapolvanasrivilai Jul 16, 2026
79999ef
build(country): promote deterministic .NET 10 validation
natthapolvanasrivilai Jul 18, 2026
6ca640f
Merge remote-tracking branch 'origin/main' into codex/country-main-pr…
natthapolvanasrivilai Jul 18, 2026
3bdb988
ci: keep secret scanning license-free
natthapolvanasrivilai Jul 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 184 additions & 0 deletions .claude/commands/speckit.analyze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
---
description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
---

## User Input

```text
$ARGUMENTS
```

You **MUST** consider the user input before proceeding (if not empty).

## Goal

Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This command MUST run only after `/speckit.tasks` has successfully produced a complete `tasks.md`.

## Operating Constraints

**STRICTLY READ-ONLY**: Do **not** modify any files. Output a structured analysis report. Offer an optional remediation plan (user must explicitly approve before any follow-up editing commands would be invoked manually).

**Constitution Authority**: The project constitution (`.specify/memory/constitution.md`) is **non-negotiable** within this analysis scope. Constitution conflicts are automatically CRITICAL and require adjustment of the spec, plan, or tasks—not dilution, reinterpretation, or silent ignoring of the principle. If a principle itself needs to change, that must occur in a separate, explicit constitution update outside `/speckit.analyze`.

## Execution Steps

### 1. Initialize Analysis Context

Run `.specify/scripts/powershell/check-prerequisites.ps1 -Json -RequireTasks -IncludeTasks` once from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS. Derive absolute paths:

- SPEC = FEATURE_DIR/spec.md
- PLAN = FEATURE_DIR/plan.md
- TASKS = FEATURE_DIR/tasks.md

Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").

### 2. Load Artifacts (Progressive Disclosure)

Load only the minimal necessary context from each artifact:

**From spec.md:**

- Overview/Context
- Functional Requirements
- Non-Functional Requirements
- User Stories
- Edge Cases (if present)

**From plan.md:**

- Architecture/stack choices
- Data Model references
- Phases
- Technical constraints

**From tasks.md:**

- Task IDs
- Descriptions
- Phase grouping
- Parallel markers [P]
- Referenced file paths

**From constitution:**

- Load `.specify/memory/constitution.md` for principle validation

### 3. Build Semantic Models

Create internal representations (do not include raw artifacts in output):

- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" → `user-can-upload-file`)
- **User story/action inventory**: Discrete user actions with acceptance criteria
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
- **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements

### 4. Detection Passes (Token-Efficient Analysis)

Focus on high-signal findings. Limit to 50 findings total; aggregate remainder in overflow summary.

#### A. Duplication Detection

- Identify near-duplicate requirements
- Mark lower-quality phrasing for consolidation

#### B. Ambiguity Detection

- Flag vague adjectives (fast, scalable, secure, intuitive, robust) lacking measurable criteria
- Flag unresolved placeholders (TODO, TKTK, ???, `<placeholder>`, etc.)

#### C. Underspecification

- Requirements with verbs but missing object or measurable outcome
- User stories missing acceptance criteria alignment
- Tasks referencing files or components not defined in spec/plan

#### D. Constitution Alignment

- Any requirement or plan element conflicting with a MUST principle
- Missing mandated sections or quality gates from constitution

#### E. Coverage Gaps

- Requirements with zero associated tasks
- Tasks with no mapped requirement/story
- Non-functional requirements not reflected in tasks (e.g., performance, security)

#### F. Inconsistency

- Terminology drift (same concept named differently across files)
- Data entities referenced in plan but absent in spec (or vice versa)
- Task ordering contradictions (e.g., integration tasks before foundational setup tasks without dependency note)
- Conflicting requirements (e.g., one requires Next.js while other specifies Vue)

### 5. Severity Assignment

Use this heuristic to prioritize findings:

- **CRITICAL**: Violates constitution MUST, missing core spec artifact, or requirement with zero coverage that blocks baseline functionality
- **HIGH**: Duplicate or conflicting requirement, ambiguous security/performance attribute, untestable acceptance criterion
- **MEDIUM**: Terminology drift, missing non-functional task coverage, underspecified edge case
- **LOW**: Style/wording improvements, minor redundancy not affecting execution order

### 6. Produce Compact Analysis Report

Output a Markdown report (no file writes) with the following structure:

## Specification Analysis Report

| ID | Category | Severity | Location(s) | Summary | Recommendation |
|----|----------|----------|-------------|---------|----------------|
| A1 | Duplication | HIGH | spec.md:L120-134 | Two similar requirements ... | Merge phrasing; keep clearer version |

(Add one row per finding; generate stable IDs prefixed by category initial.)

**Coverage Summary Table:**

| Requirement Key | Has Task? | Task IDs | Notes |
|-----------------|-----------|----------|-------|

**Constitution Alignment Issues:** (if any)

**Unmapped Tasks:** (if any)

**Metrics:**

- Total Requirements
- Total Tasks
- Coverage % (requirements with >=1 task)
- Ambiguity Count
- Duplication Count
- Critical Issues Count

### 7. Provide Next Actions

At end of report, output a concise Next Actions block:

- If CRITICAL issues exist: Recommend resolving before `/speckit.implement`
- If only LOW/MEDIUM: User may proceed, but provide improvement suggestions
- Provide explicit command suggestions: e.g., "Run /speckit.specify with refinement", "Run /speckit.plan to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"

### 8. Offer Remediation

Ask the user: "Would you like me to suggest concrete remediation edits for the top N issues?" (Do NOT apply them automatically.)

## Operating Principles

### Context Efficiency

- **Minimal high-signal tokens**: Focus on actionable findings, not exhaustive documentation
- **Progressive disclosure**: Load artifacts incrementally; don't dump all content into analysis
- **Token-efficient output**: Limit findings table to 50 rows; summarize overflow
- **Deterministic results**: Rerunning without changes should produce consistent IDs and counts

### Analysis Guidelines

- **NEVER modify files** (this is read-only analysis)
- **NEVER hallucinate missing sections** (if absent, report them accurately)
- **Prioritize constitution violations** (these are always CRITICAL)
- **Use examples over exhaustive rules** (cite specific instances, not generic patterns)
- **Report zero issues gracefully** (emit success report with coverage statistics)

## Context

$ARGUMENTS
Loading