Add TimePro feature packs and diagnostic skills#7
Merged
Conversation
d78dc89 to
63d604d
Compare
63d604d to
3cbc46b
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds persistent “feature packs” to control optional TimePro capabilities (generated skills + MCP tool registration), moves long-form skill content into embedded Markdown templates, and introduces CLI-first accounting diagnostics with MCP delegating to the same report service.
Changes:
- Added persistent feature packs (
tp feature …) plus legacy flag interception (--accounting,--developer,--dev) to enable packs without breaking older workflows. - Switched generated skills to render from embedded Markdown templates, and added new tenant setup / developer diagnostics / environment comparison skills.
- Added
tp accounting …diagnostic commands and anAccountingDiagnosticsService, with optional accounting MCP tools gated behind the accounting feature pack.
Reviewed changes
Copilot reviewed 33 out of 34 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/SSW.TimePro.Cli.Tests/Infrastructure/FeatureFlagCommandLineInterceptorTests.cs | Adds unit coverage for legacy flag interception and persistent feature enablement. |
| tests/SSW.TimePro.Cli.Tests/Infrastructure/ConfigServiceTests.cs | Extends config round-trip tests to include persisted feature pack state/versioning. |
| tests/SSW.TimePro.Cli.Tests/Features/Skills/SkillGenerationTests.cs | Validates new skill templates/skills render correctly and contain no unresolved placeholders. |
| tests/SSW.TimePro.Cli.Tests/Features/Mcp/AccountingMcpToolsTests.cs | Adds MCP test coverage for the accounting tax mismatch diagnostic path. |
| src/SSW.TimePro.Cli/SSW.TimePro.Cli.csproj | Embeds skill Markdown templates into the CLI assembly. |
| src/SSW.TimePro.Cli/Program.cs | Adds feature-flag interception early in startup; registers feature + accounting command branches and diagnostics service. |
| src/SSW.TimePro.Cli/Infrastructure/Config/GlobalConfig.cs | Introduces persisted features dictionary with per-feature enabled/version metadata. |
| src/SSW.TimePro.Cli/Infrastructure/Config/FeatureFlagCommandLineInterceptor.cs | Implements legacy flag consumption and persistence into global config. |
| src/SSW.TimePro.Cli/Infrastructure/Config/FeatureCatalog.cs | Defines feature catalog + normalization + GlobalConfig extensions for feature state. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-timesheets.md | Adds packaged Markdown template for the main timesheets skill body. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-tenant-setup.md | Adds packaged tenant setup skill template for safe tenant/env switching workflows. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-env-compare.md | Adds packaged environment comparison skill template. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-dev-timesheet-diagnostics.md | Adds packaged developer-focused timesheet diagnostics skill template. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-dev-finance-diagnostics.md | Adds packaged developer-focused finance diagnostics skill template. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-dev-diagnostics.md | Adds packaged developer diagnostics overview skill template. |
| src/SSW.TimePro.Cli/Features/Skills/Templates/timepro-accounting-cli.md | Adds packaged accounting CLI skill template (read-only, reconciliation-oriented). |
| src/SSW.TimePro.Cli/Features/Skills/SkillTemplateRenderer.cs | Loads embedded template resources and replaces placeholders (fails fast on unresolved tokens). |
| src/SSW.TimePro.Cli/Features/Skills/SkillModelBuilder.cs | Adds new skill models and routes bodies through template-backed builder methods. |
| src/SSW.TimePro.Cli/Features/Skills/SkillBodyBuilder.cs | Refactors body generation to template rendering + small dynamic placeholder fills. |
| src/SSW.TimePro.Cli/Features/Skills/CreateCommand.cs | Generates optional skills based on enabled feature packs; persists feature content versions. |
| src/SSW.TimePro.Cli/Features/Mcp/Tools/AccountingMcpTools.cs | Adds accounting diagnostics MCP tools delegating to the shared diagnostics service. |
| src/SSW.TimePro.Cli/Features/Mcp/McpHostCommand.cs | Registers default MCP tool groups explicitly and gates accounting tools behind the feature pack. |
| src/SSW.TimePro.Cli/Features/FeatureFlags/FeatureCommand.cs | Adds tp feature command to enable/disable/inspect feature packs (with JSON output option). |
| src/SSW.TimePro.Cli/Features/Accounting/TaxMismatchesCommand.cs | Adds CLI command to produce the tax mismatch diagnostic report. |
| src/SSW.TimePro.Cli/Features/Accounting/InvoiceDiagnosticsCommand.cs | Adds CLI command for deep invoice reconciliation diagnostics. |
| src/SSW.TimePro.Cli/Features/Accounting/GuideCommand.cs | Adds CLI command to output accounting diagnostic interview guide + command choices. |
| src/SSW.TimePro.Cli/Features/Accounting/ClientDiagnosticsCommand.cs | Adds CLI command for client-level accounting position diagnostics. |
| src/SSW.TimePro.Cli/Features/Accounting/AccountingDiagnosticsService.cs | Implements the shared report logic used by both CLI commands and MCP tools. |
| release-notes/0.2.1.md | Documents feature packs, new skills/templates, and accounting diagnostics additions. |
| README.md | Updates CLI/MCP docs to reflect default vs feature-gated MCP tools and feature-pack-based skill generation. |
| docs/skill-generation.md | Updates skill generation docs for template-backed skills and feature-pack gating. |
| docs/accounting.md | Updates accounting docs with new workflows and feature-gated MCP enablement. |
| AGENTS.md | Updates canonical repo guidance with feature-pack persistence and MCP/CLI delegation rules. |
| .gitignore | Adjusts ignores so generated .agents/skills/* stay untracked except the release skill. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tp feature accounting/developer enableand legacy flag interceptiontp info, andtp skills ignore-versiontp accounting guideandtp dev guidebacked by indexed Markdown guides underguides/accounting/andguides/dev/~/.config/timepro-cli/guides-cache/, with embedded fallback for offline installsguides.cacheMinutes,guides.repositoryUrl, andguides.branch;--refresh/--force-refreshbypass the TTL for one run$50kinvoiced revenue in the last 12 months and monthly sales/receipt snapshotsSKILL.mdoutputtp check-update,tp check-version, andtp whats-newcommands while keeping the legacy top-level flags;whats-newnow renders# What's new in TimePro.Toolsdocs/diagnostic-guides.mdplus repo-leveltimepro-guide-curatorandtimepro-skill-generatorskill instructions for adding and curating guide entries and generated skillsrelease-notes/0.2.1.md, README, AGENTS/CLAUDE guidance, and generated skill docs for the guide-backed diagnostics modelVerification
dotnet test tests/SSW.TimePro.Cli.Tests/dotnet test tests/SSW.TimePro.Cli.Integration/git diff --checkjq . guides/accounting/index.jsonjq . guides/dev/index.jsondotnet run --no-build --project src/SSW.TimePro.Cli -- accounting guide --use-case "50k revenue" --jsondotnet run --no-build --project src/SSW.TimePro.Cli -- accounting guide --use-case "monthly receipts" --jsondotnet run --no-build --project src/SSW.TimePro.Cli -- dev guide --use-case "appinsights exception correlation" --jsondotnet run --no-build --project src/SSW.TimePro.Cli -- --help | rg "check-update|check-version|whats-new"dotnet run --no-build --project src/SSW.TimePro.Cli -- whats-newdotnet run --no-build --project src/SSW.TimePro.Cli -- --whats-newtp skills create, verified expected generated skills exist, and verified generated output does not contain the source-template headerguides.branchtocodex/dev-skill-templates, cleared guide cache, verifiedtp dev guideandtp accounting guidefetched into~/.config/timepro-cli/guides-cache/without--refresh, then restored local config tomain