@use-the-fork/spindle 0.0.0-stage → 0.0.2
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/LICENSE +21 -0
- package/README.md +3 -2
- package/build/Assets/Blueprints/Catalog.js +110 -0
- package/build/Assets/Blueprints/agents/general.agent.md +67 -0
- package/build/Assets/Blueprints/agents/sdd-code-reviewer.agent.md +62 -0
- package/build/Assets/Blueprints/agents/sdd-code-slop-reviewer.agent.md +59 -0
- package/build/Assets/Blueprints/agents/sdd-implementer.agent.md +77 -0
- package/build/Assets/Blueprints/agents/sdd-orchestrator.agent.md +42 -0
- package/build/Assets/Blueprints/agents/sdd-re-review.agent.md +57 -0
- package/build/Assets/Blueprints/agents/sdd-reviewer.agent.md +89 -0
- package/build/Assets/Blueprints/agents/sdd-task-reviewer.agent.md +54 -0
- package/build/Assets/Blueprints/agents/shared-codebase-analyzer.agent.md +151 -0
- package/build/Assets/Blueprints/agents/shared-codebase-locator.agent.md +130 -0
- package/build/Assets/Blueprints/agents/shared-codebase-pattern-finder.agent.md +247 -0
- package/build/Assets/Blueprints/agents/shared-explore.agent.md +53 -0
- package/build/Assets/Blueprints/agents/shared-r.agent.md +17 -0
- package/build/Assets/Blueprints/agents/shared-rw.agent.md +17 -0
- package/build/Assets/Blueprints/agents/shared-rwx.agent.md +17 -0
- package/build/Assets/Blueprints/agents/shared-web-search-researcher.agent.md +122 -0
- package/build/Assets/Blueprints/instructions/code-commenting.instructions.md +39 -0
- package/build/Assets/Blueprints/instructions/source-architecture.instructions.md +15 -0
- package/build/Assets/Blueprints/skills/asd-ste100/CREDITS.MD +1 -0
- package/build/Assets/Blueprints/skills/asd-ste100/SKILL.md +83 -0
- package/build/Assets/Blueprints/skills/asd-ste100/examples/before-after.md +107 -0
- package/build/Assets/Blueprints/skills/asd-ste100/references/writing-rules.md +65 -0
- package/build/Assets/Blueprints/skills/author-agent/SKILL.md +26 -0
- package/build/Assets/Blueprints/skills/author-design/SKILL.md +38 -0
- package/build/Assets/Blueprints/skills/author-instruction/SKILL.md +28 -0
- package/build/Assets/Blueprints/skills/author-skill/SKILL.md +26 -0
- package/build/Assets/Blueprints/skills/grill/SKILL.md +33 -0
- package/build/Assets/Blueprints/skills/grill-design/SKILL.md +41 -0
- package/build/Assets/Blueprints/skills/grill-with-docs/SKILL.md +14 -0
- package/build/Assets/Blueprints/skills/implement/SKILL.md +79 -0
- package/build/Assets/Blueprints/skills/implement-spec/SKILL.md +34 -0
- package/build/Assets/Blueprints/skills/improve-codebase-architecture/HTML-REPORT.md +129 -0
- package/build/Assets/Blueprints/skills/improve-codebase-architecture/SKILL.md +74 -0
- package/build/Assets/Blueprints/skills/int-code-review/SKILL.md +76 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/SKILL.md +238 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/_sections.md +36 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/_template.md +42 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/comments-closing-brace-labels.md +112 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/comments-empty-docblocks.md +132 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/comments-narration.md +118 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/comments-placeholder.md +130 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/defensive-generic-catch.md +153 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/defensive-impossible-null.md +157 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/defensive-missing-real.md +157 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/naming-generic-placeholders.md +120 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/naming-over-descriptive.md +108 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/naming-suffix-abuse.md +167 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/naming-type-in-name.md +100 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/over-eng-dependency-creep.md +114 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/over-eng-premature-interface.md +136 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/over-eng-single-method-class.md +161 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/over-eng-useless-wrapper.md +140 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/style-as-any-escape.md +127 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/style-debug-artifacts.md +144 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/style-hyper-consistent.md +84 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/style-no-hack-scars.md +113 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/style-trivial-boilerplate.md +191 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/test-doesnt-throw.md +132 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/test-mirror-implementation.md +125 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/test-mock-everything.md +148 -0
- package/build/Assets/Blueprints/skills/int-code-slop-review/rules/test-snapshot-abuse.md +131 -0
- package/build/Assets/Blueprints/skills/int-codebase-design/SKILL.md +116 -0
- package/build/Assets/Blueprints/skills/int-codebase-design/references/DEEPENING.md +37 -0
- package/build/Assets/Blueprints/skills/int-codebase-design/references/DESIGN-IT-TWICE.md +44 -0
- package/build/Assets/Blueprints/skills/int-domain-modeling/SKILL.md +78 -0
- package/build/Assets/Blueprints/skills/int-domain-modeling/references/ADR-FORMAT.md +47 -0
- package/build/Assets/Blueprints/skills/int-domain-modeling/references/GLOSSARY-FORMAT.md +60 -0
- package/build/Assets/Blueprints/skills/int-prototype/LOGIC.md +67 -0
- package/build/Assets/Blueprints/skills/int-prototype/SKILL.md +30 -0
- package/build/Assets/Blueprints/skills/int-prototype/UI.md +112 -0
- package/build/Assets/Blueprints/skills/int-retrospective/SKILL.md +88 -0
- package/build/Assets/Blueprints/skills/int-retrospective/assets/retrospective-prompt.md +38 -0
- package/build/Assets/Blueprints/skills/int-retrospective/references/assessment.md +56 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/SKILL.md +64 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/assets/implementer-prompt.md +40 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/assets/reviewer-prompt.md +43 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/aggregate-review.md +7 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/corrective-rounds.md +72 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/example-workflow.md +25 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/full-spec.md +72 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/implementer-corrections.md +9 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/review-inputs.md +26 -0
- package/build/Assets/Blueprints/skills/int-subagent-driven-dev/references/verification-evidence.md +7 -0
- package/build/Assets/Blueprints/skills/int-test-driven-development/SKILL.md +51 -0
- package/build/Assets/Blueprints/skills/int-test-driven-development/references/mocking.md +31 -0
- package/build/Assets/Blueprints/skills/int-test-driven-development/references/tests.md +68 -0
- package/build/Assets/Blueprints/skills/int-testing-agent-guidance/SKILL.md +53 -0
- package/build/Assets/Blueprints/skills/int-verification-before-completion/SKILL.md +25 -0
- package/build/Assets/Blueprints/skills/int-writing-agents/SKILL.md +66 -0
- package/build/Assets/Blueprints/skills/int-writing-for-agents/SKILL.md +86 -0
- package/build/Assets/Blueprints/skills/int-writing-instruction/SKILL.md +57 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/SKILL.md +129 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/assets/interactive.md +83 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/assets/reference.md +32 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/references/arguments.md +50 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/references/interactive-skills.md +53 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/references/persuasion-principles.md +220 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/references/reference-skills.md +20 -0
- package/build/Assets/Blueprints/skills/int-writing-skills/references/testing-skills.md +48 -0
- package/build/Assets/Blueprints/skills/retrospective/SKILL.md +16 -0
- package/build/Assets/Blueprints/skills/setup-project/SKILL.md +66 -0
- package/build/Assets/Blueprints/skills/to-spec/SKILL.md +53 -0
- package/build/Assets/Blueprints/skills/to-tickets/SKILL.md +49 -0
- package/build/Assets/Blueprints/skills/update-tooling/SKILL.md +86 -0
- package/build/Assets/Templates/Catalog.js +12 -0
- package/build/Assets/Templates/Catalog.ts +17 -0
- package/build/Assets/Templates/project/copilot-instructions.md +17 -0
- package/build/Assets/Templates/project/domain.md +51 -0
- package/build/Assets/Templates/project/ticket-tracker.md +33 -0
- package/build/Assets/Templates/sdd/design.md +25 -0
- package/build/Assets/Templates/sdd/spec.md +29 -0
- package/build/Assets/Templates/sdd/ticket.md +15 -0
- package/build/BlueprintManagement/BlueprintManagementServiceProvider.js +15 -0
- package/build/BlueprintManagement/Catalog/BlueprintCatalog.js +238 -0
- package/build/BlueprintManagement/Commands/BlueprintCommandOptions.js +9 -0
- package/build/BlueprintManagement/Commands/ConflictPolicy.js +6 -0
- package/build/BlueprintManagement/Commands/InitCommand.js +117 -0
- package/build/BlueprintManagement/Commands/Prompts.js +66 -0
- package/build/BlueprintManagement/Commands/UpdateCommand.js +86 -0
- package/build/BlueprintManagement/Handlers/Agents/AgentHandler.js +21 -0
- package/build/BlueprintManagement/Handlers/BlueprintHandlers.js +4 -0
- package/build/BlueprintManagement/Handlers/Instructions/InstructionHandler.js +21 -0
- package/build/BlueprintManagement/Handlers/Skills/SkillHandler.js +10 -0
- package/build/BlueprintManagement/Reconciliation/BlueprintCatalogPlanner.js +87 -0
- package/build/BlueprintManagement/Reconciliation/BlueprintRemovalCoordinator.js +78 -0
- package/build/BlueprintManagement/Services/BlueprintReconciliationService.js +391 -0
- package/build/BlueprintManagement/Services/InstallationService.js +54 -0
- package/build/BlueprintManagement/Support/BlueprintFiles.js +113 -0
- package/build/BlueprintManagement/Types/Blueprint.js +1 -0
- package/build/BlueprintManagement/Types/Installation.js +1 -0
- package/build/BlueprintManagement/Types/Reconciliation.js +1 -0
- package/build/BlueprintManagement/Versioning/BlueprintVersion.js +70 -0
- package/build/BlueprintManagement/Versioning/BlueprintVersioning.js +55 -0
- package/build/Commands/Command.js +3 -0
- package/build/Commands/CommandOptions.js +12 -0
- package/build/Config/Config.js +3 -0
- package/build/Foundation/Application.js +112 -0
- package/build/Foundation/ApplicationBuilder.js +23 -0
- package/build/Foundation/Bootstrap/Bootstrapper.js +2 -0
- package/build/Foundation/Bootstrap/DiscoverGitRoot.js +8 -0
- package/build/Foundation/Bootstrap/LoadConsoleArgs.js +47 -0
- package/build/Foundation/Bootstrap/LoadProjectConfiguration.js +144 -0
- package/build/Foundation/Bootstrap/RegisterProviders.js +12 -0
- package/build/Foundation/Bootstrap/RequireProjectConfiguration.js +14 -0
- package/build/Foundation/ConsoleInvocation.js +1 -0
- package/build/Foundation/Container.js +185 -0
- package/build/Foundation/FoundationServiceProvider.js +5 -0
- package/build/Foundation/Kernel.js +30 -0
- package/build/Foundation/Service.js +23 -0
- package/build/Foundation/ServiceProvider.js +12 -0
- package/build/Git/GitServiceProvider.js +8 -0
- package/build/Git/Services/GitService.js +26 -0
- package/build/Project/ProjectServiceProvider.js +8 -0
- package/build/Project/Services/ProjectService.js +124 -0
- package/build/SubagentDrivenDevelopment/Commands/ChecksRecordCommand.js +35 -0
- package/build/SubagentDrivenDevelopment/Commands/ChecksRequireCommand.js +33 -0
- package/build/SubagentDrivenDevelopment/Commands/ClaimCommand.js +23 -0
- package/build/SubagentDrivenDevelopment/Commands/CorrectCommand.js +37 -0
- package/build/SubagentDrivenDevelopment/Commands/CreateCommand.js +26 -0
- package/build/SubagentDrivenDevelopment/Commands/FindingCreateCommand.js +39 -0
- package/build/SubagentDrivenDevelopment/Commands/FindingUpdateCommand.js +36 -0
- package/build/SubagentDrivenDevelopment/Commands/FinishCommand.js +23 -0
- package/build/SubagentDrivenDevelopment/Commands/ImplementCommand.js +23 -0
- package/build/SubagentDrivenDevelopment/Commands/NextCommand.js +21 -0
- package/build/SubagentDrivenDevelopment/Commands/ReadyCommand.js +21 -0
- package/build/SubagentDrivenDevelopment/Commands/RequirementsDecideCommand.js +33 -0
- package/build/SubagentDrivenDevelopment/Commands/ResumeCommand.js +31 -0
- package/build/SubagentDrivenDevelopment/Commands/ReviewCommand.js +55 -0
- package/build/SubagentDrivenDevelopment/Commands/ReviewRequireCommand.js +12 -0
- package/build/SubagentDrivenDevelopment/Commands/StatusCommand.js +21 -0
- package/build/SubagentDrivenDevelopment/Commands/SubmitCommand.js +59 -0
- package/build/SubagentDrivenDevelopment/Commands/TicketCommentCommand.js +24 -0
- package/build/SubagentDrivenDevelopment/Commands/TicketCreateCommand.js +25 -0
- package/build/SubagentDrivenDevelopment/Commands/TicketUpdateCommand.js +31 -0
- package/build/SubagentDrivenDevelopment/Commands/groups.js +36 -0
- package/build/SubagentDrivenDevelopment/Evidence/GitEvidence.js +449 -0
- package/build/SubagentDrivenDevelopment/Evidence/ReportEvidence.js +80 -0
- package/build/SubagentDrivenDevelopment/Models/Assignments.js +1 -0
- package/build/SubagentDrivenDevelopment/Models/Evidence.js +1 -0
- package/build/SubagentDrivenDevelopment/Models/Findings.js +1 -0
- package/build/SubagentDrivenDevelopment/Models/Options.js +1 -0
- package/build/SubagentDrivenDevelopment/Models/Workflow.js +16 -0
- package/build/SubagentDrivenDevelopment/Persistence/AssignmentSchema.js +155 -0
- package/build/SubagentDrivenDevelopment/Persistence/CheckSchema.js +71 -0
- package/build/SubagentDrivenDevelopment/Persistence/FeatureWorkspace.js +76 -0
- package/build/SubagentDrivenDevelopment/Persistence/FileSystem.js +28 -0
- package/build/SubagentDrivenDevelopment/Persistence/FindingSchema.js +81 -0
- package/build/SubagentDrivenDevelopment/Persistence/LedgerRepository.js +322 -0
- package/build/SubagentDrivenDevelopment/Persistence/PathSafety.js +62 -0
- package/build/SubagentDrivenDevelopment/Persistence/ProgressSchema.js +95 -0
- package/build/SubagentDrivenDevelopment/Persistence/ReadinessReader.js +40 -0
- package/build/SubagentDrivenDevelopment/Persistence/ReviewSchema.js +68 -0
- package/build/SubagentDrivenDevelopment/Persistence/TicketRepository.js +147 -0
- package/build/SubagentDrivenDevelopment/Persistence/WorkspaceTransaction.js +282 -0
- package/build/SubagentDrivenDevelopment/Policies/AcceptancePolicy.js +100 -0
- package/build/SubagentDrivenDevelopment/Policies/AssignmentPolicy.js +36 -0
- package/build/SubagentDrivenDevelopment/Policies/CheckPolicy.js +93 -0
- package/build/SubagentDrivenDevelopment/Policies/FindingPolicy.js +53 -0
- package/build/SubagentDrivenDevelopment/Policies/InputValidation.js +36 -0
- package/build/SubagentDrivenDevelopment/Policies/ReadinessPolicy.js +26 -0
- package/build/SubagentDrivenDevelopment/Policies/RequiredReviewers.js +12 -0
- package/build/SubagentDrivenDevelopment/Policies/ReviewPolicy.js +87 -0
- package/build/SubagentDrivenDevelopment/Policies/WorkflowPolicy.js +85 -0
- package/build/SubagentDrivenDevelopment/Services/AssignmentService.js +269 -0
- package/build/SubagentDrivenDevelopment/Services/ChecksService.js +319 -0
- package/build/SubagentDrivenDevelopment/Services/CorrectionService.js +273 -0
- package/build/SubagentDrivenDevelopment/Services/DeliveryCorrectionService.js +253 -0
- package/build/SubagentDrivenDevelopment/Services/DeliveryFindingService.js +302 -0
- package/build/SubagentDrivenDevelopment/Services/DeliveryService.js +160 -0
- package/build/SubagentDrivenDevelopment/Services/DeliverySubmissionService.js +273 -0
- package/build/SubagentDrivenDevelopment/Services/FeatureCreationService.js +138 -0
- package/build/SubagentDrivenDevelopment/Services/FeatureInspectionService.js +399 -0
- package/build/SubagentDrivenDevelopment/Services/FindingService.js +392 -0
- package/build/SubagentDrivenDevelopment/Services/IntegrationService.js +258 -0
- package/build/SubagentDrivenDevelopment/Services/ReadinessService.js +21 -0
- package/build/SubagentDrivenDevelopment/Services/RequirementsService.js +216 -0
- package/build/SubagentDrivenDevelopment/Services/ReviewService.js +471 -0
- package/build/SubagentDrivenDevelopment/Services/SubmissionService.js +299 -0
- package/build/SubagentDrivenDevelopment/Services/TicketService.js +186 -0
- package/build/SubagentDrivenDevelopment/SubagentDrivenDevelopmentServiceProvider.js +113 -0
- package/build/Support/Records.js +5 -0
- package/build/Support/Repository.js +139 -0
- package/build/Support/Stacks.js +10 -0
- package/build/TemplateRendering/Computed/ComputedContextService.js +13 -0
- package/build/TemplateRendering/Computed/ComputedVariableProvider.js +6 -0
- package/build/TemplateRendering/Computed/ComputedVariableProviders.js +6 -0
- package/build/TemplateRendering/Computed/Providers/InternalSkillDescriptionProvider.js +6 -0
- package/build/TemplateRendering/Computed/Providers/SpindlePackageManagerProvider.js +11 -0
- package/build/TemplateRendering/Computed/ResolveRenderContext.js +18 -0
- package/build/TemplateRendering/Rendering/RenderText.js +43 -0
- package/build/TemplateRendering/TemplateRenderingServiceProvider.js +8 -0
- package/build/Tooling/Commands/ToolingAddCommand.js +29 -0
- package/build/Tooling/Commands/ToolingListCommand.js +19 -0
- package/build/Tooling/Commands/ToolingRemoveCommand.js +19 -0
- package/build/Tooling/Commands/ToolingUpdateCommand.js +30 -0
- package/build/Tooling/Commands/groups.js +4 -0
- package/build/Tooling/Models/ToolingEntry.js +1 -0
- package/build/Tooling/Services/ToolingService.js +278 -0
- package/build/Tooling/ToolingServiceProvider.js +15 -0
- package/build/cli.js +36 -0
- package/build/index.js +31 -0
- package/package.json +54 -3
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shared-rwx
|
|
3
|
+
description: A general subagent that assists with various tasks as directed by the main agent, with read, write, and execute capabilities.
|
|
4
|
+
argument-hint: The instructions or tasks to be performed by the subagent.
|
|
5
|
+
user-invocable: false
|
|
6
|
+
tools: [read, search, edit, execute, todo, read_skill, list_skills, skill]
|
|
7
|
+
agents: []
|
|
8
|
+
metadata:
|
|
9
|
+
spindle:
|
|
10
|
+
version: 1.0.0
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
You are a general subagent that assists with various tasks as directed by the main agent. Do EXACTLY as instructed and do not take independent actions unless explicitly authorized.
|
|
14
|
+
|
|
15
|
+
<critical>
|
|
16
|
+
- You MUST read and follow all skill requirements, ESPECIALLY those marked with `int-` prefixes.
|
|
17
|
+
</critical>
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shared-web-search-researcher
|
|
3
|
+
description: "Do you find yourself desiring information that you don't quite feel well-trained (confident) on? Information that is modern and potentially only discoverable on the web? Use the shared-web-search-researcher subagent_type today to find any and all answers to your questions! It will research deeply to figure out and attempt to answer your questions! If you aren't immediately satisfied you can get your money back! (Not really - but you can re-run shared-web-search-researcher with an altered prompt in the event you're not satisfied the first time)"
|
|
4
|
+
user-invocable: false
|
|
5
|
+
tools: ["web"]
|
|
6
|
+
agents: []
|
|
7
|
+
metadata:
|
|
8
|
+
spindle:
|
|
9
|
+
version: 0.0.1
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
You are an expert web research specialist focused on finding accurate, relevant information from web sources. Use your tools, to discover and retrieve information based on user queries.
|
|
13
|
+
|
|
14
|
+
## Core Responsibilities
|
|
15
|
+
|
|
16
|
+
When you receive a research query, you will:
|
|
17
|
+
|
|
18
|
+
1. **Analyze the Query**: Break down the user's request to identify:
|
|
19
|
+
- Key search terms and concepts
|
|
20
|
+
- Types of sources likely to have answers (documentation, blogs, forums, academic papers)
|
|
21
|
+
- Multiple search angles to ensure comprehensive coverage
|
|
22
|
+
|
|
23
|
+
2. **Execute Strategic Searches**:
|
|
24
|
+
- Start with broad searches to understand the landscape
|
|
25
|
+
- Refine with specific technical terms and phrases
|
|
26
|
+
- Use multiple search variations to capture different perspectives
|
|
27
|
+
- Include site-specific searches when targeting known authoritative sources (e.g., "site:docs.stripe.com webhook signature")
|
|
28
|
+
|
|
29
|
+
3. **Fetch and Analyze Content**:
|
|
30
|
+
- Use WebFetch to retrieve full content from promising search results
|
|
31
|
+
- Prioritize official documentation, reputable technical blogs, and authoritative sources
|
|
32
|
+
- Extract specific quotes and sections relevant to the query
|
|
33
|
+
- Note publication dates to ensure currency of information
|
|
34
|
+
|
|
35
|
+
4. **Synthesize Findings**:
|
|
36
|
+
- Organize information by relevance and authority
|
|
37
|
+
- Include exact quotes with proper attribution
|
|
38
|
+
- Provide direct links to sources
|
|
39
|
+
- Highlight any conflicting information or version-specific details
|
|
40
|
+
- Note any gaps in available information
|
|
41
|
+
|
|
42
|
+
## Search Strategies
|
|
43
|
+
|
|
44
|
+
### For API/Library Documentation:
|
|
45
|
+
|
|
46
|
+
- Search for official docs first: "[library name] official documentation [specific feature]"
|
|
47
|
+
- Look for changelog or release notes for version-specific information
|
|
48
|
+
- Find code examples in official repositories or trusted tutorials
|
|
49
|
+
|
|
50
|
+
### For Best Practices:
|
|
51
|
+
|
|
52
|
+
- Search for recent articles (include year in search when relevant)
|
|
53
|
+
- Look for content from recognized experts or organizations
|
|
54
|
+
- Cross-reference multiple sources to identify consensus
|
|
55
|
+
- Search for both "best practices" and "anti-patterns" to get full picture
|
|
56
|
+
|
|
57
|
+
### For Technical Solutions:
|
|
58
|
+
|
|
59
|
+
- Use specific error messages or technical terms in quotes
|
|
60
|
+
- Search Stack Overflow and technical forums for real-world solutions
|
|
61
|
+
- Look for GitHub issues and discussions in relevant repositories
|
|
62
|
+
- Find blog posts describing similar implementations
|
|
63
|
+
|
|
64
|
+
### For Comparisons:
|
|
65
|
+
|
|
66
|
+
- Search for "X vs Y" comparisons
|
|
67
|
+
- Look for migration guides between technologies
|
|
68
|
+
- Find benchmarks and performance comparisons
|
|
69
|
+
- Search for decision matrices or evaluation criteria
|
|
70
|
+
|
|
71
|
+
## Output Format
|
|
72
|
+
|
|
73
|
+
Structure your findings as:
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
## Summary
|
|
77
|
+
|
|
78
|
+
[Brief overview of key findings]
|
|
79
|
+
|
|
80
|
+
## Detailed Findings
|
|
81
|
+
|
|
82
|
+
### [Topic/Source 1]
|
|
83
|
+
|
|
84
|
+
**Source**: [Name with link]
|
|
85
|
+
**Relevance**: [Why this source is authoritative/useful]
|
|
86
|
+
**Key Information**:
|
|
87
|
+
|
|
88
|
+
- Direct quote or finding (with link to specific section if possible)
|
|
89
|
+
- Another relevant point
|
|
90
|
+
|
|
91
|
+
### [Topic/Source 2]
|
|
92
|
+
|
|
93
|
+
[Continue pattern...]
|
|
94
|
+
|
|
95
|
+
## Additional Resources
|
|
96
|
+
|
|
97
|
+
- [Relevant link 1] - Brief description
|
|
98
|
+
- [Relevant link 2] - Brief description
|
|
99
|
+
|
|
100
|
+
## Gaps or Limitations
|
|
101
|
+
|
|
102
|
+
[Note any information that couldn't be found or requires further investigation]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Quality Guidelines
|
|
106
|
+
|
|
107
|
+
- **Accuracy**: Always quote sources accurately and provide direct links
|
|
108
|
+
- **Relevance**: Focus on information that directly addresses the user's query
|
|
109
|
+
- **Currency**: Note publication dates and version information when relevant
|
|
110
|
+
- **Authority**: Prioritize official sources, recognized experts, and peer-reviewed content
|
|
111
|
+
- **Completeness**: Search from multiple angles to ensure comprehensive coverage
|
|
112
|
+
- **Transparency**: Clearly indicate when information is outdated, conflicting, or uncertain
|
|
113
|
+
|
|
114
|
+
## Search Efficiency
|
|
115
|
+
|
|
116
|
+
- Start with 2-3 well-crafted searches before fetching content
|
|
117
|
+
- Fetch only the most promising 3-5 pages initially
|
|
118
|
+
- If initial results are insufficient, refine search terms and try again
|
|
119
|
+
- Use search operators effectively: quotes for exact phrases, minus for exclusions, site: for specific domains
|
|
120
|
+
- Consider searching in different forms: tutorials, documentation, Q&A sites, and discussion forums
|
|
121
|
+
|
|
122
|
+
Remember: You are the user's expert guide to web information. Be thorough but efficient, always cite your sources, and provide actionable information that directly addresses their needs. Think deeply as you work.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Code Commenting
|
|
3
|
+
description: "Defines when you should and should NOT write code comments. Apply on any code edit/write/refactor."
|
|
4
|
+
applyTo: "**/*"
|
|
5
|
+
metadata:
|
|
6
|
+
spindle:
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Code Commenting Rules
|
|
11
|
+
|
|
12
|
+
**Default: write no comments.** A comment must justify its existence; the absence of a comment is the right answer almost always.
|
|
13
|
+
|
|
14
|
+
## When a comment IS warranted
|
|
15
|
+
|
|
16
|
+
Only when the **WHY** is non-obvious and a future reader would otherwise be confused or break the code:
|
|
17
|
+
|
|
18
|
+
- A hidden constraint (e.g. "API requires this header lowercased — server rejects mixed case").
|
|
19
|
+
- A subtle invariant (e.g. "must run before X is mounted, otherwise the event listener attaches to the wrong target").
|
|
20
|
+
- A workaround for a specific bug or spec quirk (e.g. "Safari 17 fires `focus` twice — debounce").
|
|
21
|
+
- Focus on behavior that would surprise a competent reader.
|
|
22
|
+
|
|
23
|
+
Keep it to **one line** wherever possible. Two lines max. Never a paragraph, never a multi-line block, never a docstring with sections.
|
|
24
|
+
|
|
25
|
+
## When a comment is NOT warranted (delete or skip)
|
|
26
|
+
|
|
27
|
+
- Restating WHAT the code does ("// increment counter", "// loop through users") — well-named identifiers already do
|
|
28
|
+
that.
|
|
29
|
+
- Narrating the change or its origin ("// added to fix bug #123", "// used by the X flow", "// previously called Y"). That belongs in the PR description and rots as the codebase evolves.
|
|
30
|
+
- Section headers ("// === Helpers ===" , // --- Validation ---") inside a normal function body.
|
|
31
|
+
- Restating type annotations or signatures.
|
|
32
|
+
- TODO/FIXME without a tracked issue or owner — either fix it now or file it; don't leave drift markers.
|
|
33
|
+
- Commented-out code. Delete it; git remembers.
|
|
34
|
+
|
|
35
|
+
## How to apply
|
|
36
|
+
|
|
37
|
+
1. Before writing a comment, ask: _would removing this comment confuse a future reader who doesn't know about the current task?_ If no, don't write it.
|
|
38
|
+
2. When editing existing code, treat redundant comments around your change as fair game to remove (don't go on a comment-stripping crusade in unrelated files).
|
|
39
|
+
3. If the user explicitly asks for verbose comments, follow the user — they override this rule.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Source Architecture
|
|
3
|
+
description: Use when adding, moving, or refactoring source files.
|
|
4
|
+
applyTo: "**/*"
|
|
5
|
+
metadata:
|
|
6
|
+
spindle:
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Source Architecture
|
|
11
|
+
|
|
12
|
+
- Organize code by feature or domain so related responsibilities can evolve together. Treat this as a flexible convention, not a required architecture label or fixed directory tree.
|
|
13
|
+
- Keep each file focused on one clear responsibility. Split it when it has multiple reasons to change or becomes difficult to navigate; do not use an arbitrary line-count limit.
|
|
14
|
+
- Add role-based subfolders when they help separate responsibilities or improve navigation as a feature grows.
|
|
15
|
+
- Put stateful behavior on the class or service that owns it. Use module-level functions for stateless helpers; use static methods when grouping helpers with a class improves cohesion or clarity.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
https://github.com/danyuchn/asd-ste100-skill/
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: asd-ste100
|
|
3
|
+
description: "Rewrites ambiguous English into ASD-STE100 style — one meaning per word, active voice, simple tense, short sentences. Use when agent output is hard to parse; triggers: simplify this, STE100 rewrite."
|
|
4
|
+
user-invocable: false
|
|
5
|
+
metadata:
|
|
6
|
+
spindle:
|
|
7
|
+
version: 0.0.1
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Simplified Technical English (ASD-STE100)
|
|
11
|
+
|
|
12
|
+
ASD-STE100 is a controlled-language standard built by the aerospace and defense industry (ASD, the AeroSpace and Defense Industries Association of Europe) to stop maintenance technicians from misreading English instructions. The standard removes the two biggest sources of misreading: words with more than one meaning, and sentences with more than one possible structure.
|
|
13
|
+
|
|
14
|
+
This skill borrows that same discipline for a different reader: an **AI agent or a downstream system** that has to parse an English string — an error message, a tool description, an inter-agent instruction, a status report — without a human in the loop to resolve ambiguity. If a maintenance technician can misread "close the valve" as an adjective ("the valve that is near") instead of a command, so can a language model.
|
|
15
|
+
|
|
16
|
+
## When to Use This Skill
|
|
17
|
+
|
|
18
|
+
- An agent's output (explanation, instruction, log message, tool description) reads as dense, jargon-heavy, or ambiguous.
|
|
19
|
+
- Text will be consumed by another agent, a translation pipeline, or a non-native English reader, and misparsing has a real cost.
|
|
20
|
+
- You are writing a prompt, system message, or tool description and want to remove ambiguity before a model ever sees it.
|
|
21
|
+
- You want a **before/after** comparison showing exactly which rule was violated and how the rewrite fixes it.
|
|
22
|
+
|
|
23
|
+
This skill is not for creative or marketing copy — STE is deliberately flat and literal. Do not apply it to text where voice, nuance, or persuasion is the point.
|
|
24
|
+
|
|
25
|
+
## Source and Scope
|
|
26
|
+
|
|
27
|
+
This skill encodes the **rule categories** of ASD-STE100 Issue 9 (Jan 2025): 53 writing rules across 9 sections covering word choice, grammar, sentence structure, and style, backed by a dictionary of ~900 approved words (one meaning, one part of speech each) and ~1,200 words to avoid with suggested replacements. See `references/writing-rules.md` for the full rule summary and citations.
|
|
28
|
+
|
|
29
|
+
It does **not** reproduce ASD's ~900-word approved dictionary verbatim — that document is ASD's own free-to-download standard, not something to copy wholesale. Instead, this skill applies the *underlying principle* (pick the plainest, most common word available and use it the same way every time) rather than checking against a fixed word list. When exact ASD-approved wording matters (e.g. actual aircraft maintenance documentation), download the official standard at https://www.asd-ste100.org/ and check word-by-word against the real dictionary.
|
|
30
|
+
|
|
31
|
+
## Core Rewrite Rules
|
|
32
|
+
|
|
33
|
+
| Rule | Do | Don't |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| One word, one meaning | Pick one verb for one action and reuse it every time (e.g. always "check", never mix "check"/"verify"/"confirm" for the same action) | Rotate synonyms for the same idea across a document |
|
|
36
|
+
| One part of speech per word | "Apply oil to the valve" (oil = noun) | "Oil the valve" (oil = verb) — if "oil" is only approved as a noun |
|
|
37
|
+
| Active voice | "The agent deletes the file." | "The file is deleted (by the agent)." — unless the actor is genuinely unknown or irrelevant |
|
|
38
|
+
| Simple tenses only | "We received the report." (simple past) | "We have received the report." (present perfect) |
|
|
39
|
+
| One instruction per sentence | "Open the file. Read line 3." | "Open the file and read line 3, then check if it matches." |
|
|
40
|
+
| Sentence length | ≤20 words for instructions/procedures, ≤25 words for descriptions | Long compound/subordinate-clause sentences |
|
|
41
|
+
| Noun clusters | ≤3 words stacked as a noun phrase ("fuel pump valve") | 4+ word noun stacks ("high pressure fuel pump inlet valve assembly") |
|
|
42
|
+
| No ellipsis | Keep the subject, verb, and article explicit even if it reads longer | Drop words to save space ("Files not backed up will be lost" → ambiguous which files) |
|
|
43
|
+
| Paragraph limits | One topic per paragraph, ≤6 sentences | Multi-topic paragraphs |
|
|
44
|
+
| Lists for sequences | Use a numbered or bulleted list for 3+ steps or conditions | Bury a sequence inside one prose sentence |
|
|
45
|
+
| Domain terms | Keep necessary technical nouns/verbs, but define them once if not common English (STE allows a project-specific glossary beyond its base dictionary) | Use jargon without ever defining it |
|
|
46
|
+
|
|
47
|
+
## Process
|
|
48
|
+
|
|
49
|
+
1. Read the input text once for meaning — do not start rewriting before you understand what it must still say afterward.
|
|
50
|
+
2. Walk it sentence by sentence and flag every rule violation (word ambiguity, tense, voice, length, ellipsis, noun stacking).
|
|
51
|
+
3. Rewrite each flagged sentence to fix the violation while preserving the original meaning exactly. If a rewrite would drop necessary precision (a safety condition, a scope qualifier, a number), keep the longer phrasing and flag it instead of silently simplifying.
|
|
52
|
+
4. Produce a before/after table (see Output Format).
|
|
53
|
+
5. If the input already complies, say so — do not force changes onto compliant text.
|
|
54
|
+
|
|
55
|
+
## Output Format
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
| Rule violated | Original | Simplified |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Present perfect tense | "We have received your request." | "We received your request." |
|
|
61
|
+
| Noun cluster (4+ words) | "the agent task queue priority handler" | "the handler that sets task-queue priority" |
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Follow the table with a one-line note on anything you deliberately did **not** simplify, and why (usually: simplifying would lose required precision).
|
|
65
|
+
|
|
66
|
+
## Boundaries
|
|
67
|
+
|
|
68
|
+
**Will:**
|
|
69
|
+
- Rewrite ambiguous or dense English into short, single-meaning, active-voice sentences.
|
|
70
|
+
- Flag exactly which rule a sentence violates before rewriting it.
|
|
71
|
+
- Preserve every fact, condition, and scope qualifier in the original.
|
|
72
|
+
- Suggest a one-line glossary entry for domain terms that must stay.
|
|
73
|
+
|
|
74
|
+
**Will not:**
|
|
75
|
+
- Reproduce ASD's official ~900-word dictionary as if it were memorized verbatim — always treat the official download as the source of truth for exact approved wording.
|
|
76
|
+
- Simplify creative, marketing, or persuasive copy where voice and nuance are the point.
|
|
77
|
+
- Silently drop a safety condition, exception, or scope qualifier to shorten a sentence — it will flag the trade-off instead.
|
|
78
|
+
- Guarantee an aerospace/defense-grade STE-compliant document; this is a general-purpose clarity tool inspired by STE, not a certified STE authoring tool.
|
|
79
|
+
|
|
80
|
+
## Additional Resources
|
|
81
|
+
|
|
82
|
+
- **`references/writing-rules.md`** — fuller summary of the 9 rule sections and dictionary structure, with citations to the official standard and secondary sources.
|
|
83
|
+
- **`examples/before-after.md`** — worked examples, including official STE examples and agent-output examples built for this skill.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Before / After Examples
|
|
2
|
+
|
|
3
|
+
## Part 1 — Official STE Examples
|
|
4
|
+
|
|
5
|
+
These illustrate real ASD-STE100 rules, drawn from public secondary sources (see `references/writing-rules.md`). They are paraphrased illustrations of the rule, not quotes from the standard itself.
|
|
6
|
+
|
|
7
|
+
| Rule | Before | After | Why |
|
|
8
|
+
| --------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| One meaning per word | "Verify the system." / "Check the connections." / "Confirm receipt." | "Make sure the system is correct." (one approved term used consistently) | Three near-synonyms force the reader to guess whether they mean the same action. |
|
|
10
|
+
| One part of speech per word | "Oil the valve." | "Apply oil to the valve." | If "oil" is approved only as a noun, using it as a verb breaks the one-word-one-role guarantee. |
|
|
11
|
+
| Precise verb meaning | "Follow the safety instructions." | "Obey the safety instructions." | "Follow" can mean "come after" or "obey" — STE picks the unambiguous one. |
|
|
12
|
+
| Simple tense only | "We have received the technical reports from HQ." | "We received the technical reports from HQ." | Present perfect adds a second parse ("received, and still relevant now?") that simple past avoids. |
|
|
13
|
+
| Verb, not noun | "Perform an inspection of the filter." | "Inspect the filter." | The noun form hides the action and adds a filler verb that carries no meaning. |
|
|
14
|
+
| No phrasal verbs | "Take off the access panel." | "Remove the access panel." | "Take off" also means "depart" and "deduct" — the two words together do not predict the meaning. |
|
|
15
|
+
|
|
16
|
+
## Part 2 — Applied to Agent Output
|
|
17
|
+
|
|
18
|
+
These are original examples built for this skill's actual use case: rewriting AI agent output so another agent, a translation layer, or a non-native reader can parse it without ambiguity. They are illustrations, not quotes from any real system.
|
|
19
|
+
|
|
20
|
+
Word counts below are whitespace-separated tokens (`text.split()`), punctuation not counted separately. A different tokenizer will produce a different number.
|
|
21
|
+
|
|
22
|
+
### Example A — Tool description
|
|
23
|
+
|
|
24
|
+
**Before:**
|
|
25
|
+
|
|
26
|
+
> This tool will attempt to synchronize state across the various backends that have been configured, and if a conflict is detected it may resolve it automatically depending on the strategy that has been set, or otherwise it will surface the conflict for manual review.
|
|
27
|
+
|
|
28
|
+
**Violations flagged:**
|
|
29
|
+
|
|
30
|
+
- Two instructions in one sentence (sync + resolve/surface).
|
|
31
|
+
- Present perfect in the relative clauses ("have been configured", "has been set").
|
|
32
|
+
- 44 words, far over the 25-word descriptive cap.
|
|
33
|
+
|
|
34
|
+
Note what is _not_ flagged: "will attempt to" and "may resolve". Those are hedges, not violations. The tool is not promised to succeed, and the rewrite must not promise it either.
|
|
35
|
+
|
|
36
|
+
**After:**
|
|
37
|
+
|
|
38
|
+
> The tool tries to synchronize state across the configured backends. If it finds a conflict, it reads the configured strategy. If the strategy allows automatic resolution, the tool may resolve the conflict without a user. If the tool does not resolve the conflict, it reports the conflict for manual review.
|
|
39
|
+
|
|
40
|
+
The last sentence branches on whether the conflict was resolved, not on what the strategy allows. That is what "or otherwise" meant in the original: the fallback covers a permitted resolution that still did not happen.
|
|
41
|
+
|
|
42
|
+
### Example B — Error message
|
|
43
|
+
|
|
44
|
+
**Before:**
|
|
45
|
+
|
|
46
|
+
> An error may have occurred while processing your request due to a possible mismatch in the expected data format, which could be caused by an outdated client version.
|
|
47
|
+
|
|
48
|
+
**Violations flagged:**
|
|
49
|
+
|
|
50
|
+
- One sentence carrying three separate claims (an error occurred, a format mismatch, a client version).
|
|
51
|
+
- 28 words, over the descriptive cap.
|
|
52
|
+
|
|
53
|
+
Not flagged: "may have occurred" and "could be caused by". The message is written by a system that does not know what went wrong. Both hedges are accurate reporting of that ignorance.
|
|
54
|
+
|
|
55
|
+
**After:**
|
|
56
|
+
|
|
57
|
+
> Your request may have failed. The cause may be a data format that does not match what the server expects. An outdated client can cause this mismatch. Check your client version.
|
|
58
|
+
|
|
59
|
+
**This example is the reason the modality rule exists.** An earlier version of this file rewrote the first sentence as "The request failed", and the third as "an outdated client **is the most common cause**". Both read better. Both are wrong: the first asserts a failure the system only suspects, and the second invents a frequency claim that appears nowhere in the input. A rewrite that supplies a cause, a frequency, or a mechanism has stopped being a rewrite.
|
|
60
|
+
|
|
61
|
+
Note also that "may have failed" keeps a compound verb form that the simple-tense rule would otherwise remove. **When the tense rule and the modality rule conflict, modality wins** — dropping the auxiliary here would delete the uncertainty along with the tense.
|
|
62
|
+
|
|
63
|
+
### Example C — Inter-agent instruction
|
|
64
|
+
|
|
65
|
+
**Before:**
|
|
66
|
+
|
|
67
|
+
> Once the upstream job has completed and assuming no errors were raised, the downstream agent should proceed to consume the output artifact, though it is worth noting that partial artifacts are sometimes produced under timeout conditions.
|
|
68
|
+
|
|
69
|
+
**Violations flagged:**
|
|
70
|
+
|
|
71
|
+
- Present perfect ("has completed") and subordinate-clause stacking ("assuming...", "though it is worth noting...").
|
|
72
|
+
- One sentence, three separate facts (completion condition, next action, edge-case warning).
|
|
73
|
+
- 36 words, over the 20-word instruction cap.
|
|
74
|
+
|
|
75
|
+
**After:**
|
|
76
|
+
|
|
77
|
+
> Wait for the upstream job to finish with no errors. Then read the output artifact. Warning: a timeout can produce a partial artifact. Check that the artifact is complete before you use it.
|
|
78
|
+
|
|
79
|
+
Two deliberate calls worth stating rather than hiding:
|
|
80
|
+
|
|
81
|
+
- "should proceed to consume" became the imperative "read". STE permits this for instructions, where a recommendation addressed to the executing agent is a command. Do not make the same move in descriptive text.
|
|
82
|
+
- The final sentence is **new**. The original warned about partial artifacts without saying what to do about it. Adding the check makes the warning actionable, but it is added content, so it is called out here rather than passed off as a rewrite. If the source's silence was deliberate, drop the sentence.
|
|
83
|
+
|
|
84
|
+
### Example D — README prose (STE-flavored mode)
|
|
85
|
+
|
|
86
|
+
**Before:**
|
|
87
|
+
|
|
88
|
+
> Our caching layer is designed to slot seamlessly into your existing stack with minimal friction and no vendor lock-in; it leverages semantic similarity to dramatically reduce the cache misses that traditionally plague LLM workloads.
|
|
89
|
+
|
|
90
|
+
**Violations flagged:**
|
|
91
|
+
|
|
92
|
+
- Marketing adjectives and claims without measurement ("seamlessly", "minimal friction", "dramatically").
|
|
93
|
+
- Semicolon joining two separate ideas.
|
|
94
|
+
- Nominalization and soft phrasing ("is designed to slot into", "leverages").
|
|
95
|
+
- 34 words, over the 25-word descriptive cap.
|
|
96
|
+
|
|
97
|
+
**After:**
|
|
98
|
+
|
|
99
|
+
> We designed our cache layer to fit into your current stack without vendor lock-in. It uses semantic similarity to reduce cache misses, a long-standing problem for LLM workloads.
|
|
100
|
+
|
|
101
|
+
Flavored mode did not force one fixed term per concept. It still cut the marketing adjectives, the semicolon, and the length. It kept "designed to", because the input states a design goal, not a result.
|
|
102
|
+
|
|
103
|
+
An earlier version of this file added two facts. It said that a normal cache matches requests by exact text. It also said that this cache stores no data outside your stack. The input states neither fact. A rewrite that adds a fact is no longer a rewrite.
|
|
104
|
+
|
|
105
|
+
## How to Read These Examples
|
|
106
|
+
|
|
107
|
+
Part 1 shows the actual rules this skill is built on. Part 2 shows the transfer: the same discipline — one meaning per word, active voice, simple tense, one instruction per sentence, explicit conditions instead of buried subordinate clauses — makes machine-to-machine and cross-language text safer to parse, not just aircraft manuals.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# ASD-STE100 Writing Rules — Summary and Sources
|
|
2
|
+
|
|
3
|
+
This file summarizes the public, official description of ASD-STE100 (Simplified Technical English). It paraphrases rule _categories_. It does not reproduce the standard's text or its ~900-word dictionary verbatim. For the authoritative document, request the free download at the official site.
|
|
4
|
+
|
|
5
|
+
## What ASD-STE100 Is
|
|
6
|
+
|
|
7
|
+
ASD-STE100 is a controlled natural language, first released in 1986 (as AECMA Document PSC-85-16598) by what is now ASD (the AeroSpace and Defense Industries Association of Europe). It was built at the request of European airlines — most staffed by non-native English speakers — who needed maintenance documentation that could not be misread, because a misread instruction on an aircraft can kill people. The standard is maintained by the Simplified Technical English Maintenance Group (STEMG) and has been free to download since Issue 6 (2013). The current edition is Issue 9 (January 2025).
|
|
8
|
+
|
|
9
|
+
## Structure
|
|
10
|
+
|
|
11
|
+
- **53 writing rules across 9 sections** covering word choice, grammar, sentence structure, and style.
|
|
12
|
+
- **A dictionary** of roughly 900 approved words, each restricted to one meaning and one part of speech, plus roughly 1,200 words to avoid with suggested replacements.
|
|
13
|
+
- **A terminology allowance**: organizations may define their own dictionary of approved technical nouns and verbs beyond the base ~900 words, for domain-specific vocabulary the base dictionary can't cover.
|
|
14
|
+
|
|
15
|
+
## Rule Categories (Paraphrased)
|
|
16
|
+
|
|
17
|
+
**Word choice**
|
|
18
|
+
|
|
19
|
+
- Use approved words only in their approved meaning and part of speech.
|
|
20
|
+
- Each word maps to exactly one meaning — don't rely on context to disambiguate a word that has several dictionary senses.
|
|
21
|
+
- Prefer the plainer, shorter, more common word over a formal or rare synonym.
|
|
22
|
+
- Use an approved verb for an action, not a noun derived from that verb (Rule 3.7).
|
|
23
|
+
- Do not make phrasal verbs by putting a verb and a preposition together (Rule 9.3). Their meaning is not predictable from the parts, and non-native readers and translation systems both mishandle them.
|
|
24
|
+
|
|
25
|
+
**Verb forms**
|
|
26
|
+
|
|
27
|
+
- Permitted forms: infinitive, imperative, simple present, simple past, simple future, and past participle used only as an adjective.
|
|
28
|
+
- No present perfect, past perfect, or other compound/auxiliary constructions. "We have received" is not allowed. "We received" is allowed.
|
|
29
|
+
- "-ing" forms are permitted only as a technical noun or as part of a technical noun, not as a verb form.
|
|
30
|
+
|
|
31
|
+
**Voice**
|
|
32
|
+
|
|
33
|
+
- Active voice is required for procedures and instructions.
|
|
34
|
+
- Passive voice is allowed only in descriptive text, and only when the actor performing the action is genuinely unknown or irrelevant to the reader.
|
|
35
|
+
|
|
36
|
+
**Sentence structure**
|
|
37
|
+
|
|
38
|
+
- One instruction per sentence.
|
|
39
|
+
- Maximum ~20 words per sentence for procedures and instructions. Maximum ~25 words for descriptive text.
|
|
40
|
+
- Do not omit sentence parts (verb, subject, article) just to shorten the sentence — the standard explicitly warns that this creates ambiguity rather than clarity.
|
|
41
|
+
- Noun clusters (strings of nouns stacked as a modifier) are capped at 3 words.
|
|
42
|
+
- Semicolons are not permitted at all (Rule 8.1): "You can use all standard English punctuation marks but not the semicolon (;)." Write separate sentences instead. Every other standard mark, including the em dash, remains permitted.
|
|
43
|
+
|
|
44
|
+
**Paragraph and document structure**
|
|
45
|
+
|
|
46
|
+
- One topic per paragraph.
|
|
47
|
+
- Maximum ~6 sentences per paragraph.
|
|
48
|
+
- Use vertical (numbered or bulleted) lists for sequences, conditions, or complex enumerations instead of burying them in prose.
|
|
49
|
+
|
|
50
|
+
**Safety instructions**
|
|
51
|
+
|
|
52
|
+
- Safety-critical instructions must open with a clear command or condition, not be buried mid-sentence.
|
|
53
|
+
|
|
54
|
+
## Why This Skill Repurposes STE for Agent Output
|
|
55
|
+
|
|
56
|
+
STE was designed to eliminate ambiguity for a reader who cannot ask a follow-up question — a technician on a tarmac, working from a manual, with no author to call. An AI agent parsing another agent's output, a tool description, or a system message is in the same position: no back-channel to resolve "does this passive-voice sentence mean the caller does X, or the callee does X?" The same rule set that protects an airline mechanic from a misread torque spec protects a downstream agent from a misread instruction.
|
|
57
|
+
|
|
58
|
+
## Sources
|
|
59
|
+
|
|
60
|
+
- [ASD-STE100 official site](https://www.asd-ste100.org/)
|
|
61
|
+
- [ASD-STE100 — About STE](https://www.asd-ste100.org/about_STE.html)
|
|
62
|
+
- [ASD Europe — Simplified Technical English](https://www.asd-europe.org/standards-specifications/simplified-technical-english/)
|
|
63
|
+
- [Simplified Technical English — Wikipedia](https://en.wikipedia.org/wiki/Simplified_Technical_English)
|
|
64
|
+
- [TechScribe — ASD-STE100 Simplified Technical English](https://www.techscribe.co.uk/techw/asd-simplified-technical-english.htm)
|
|
65
|
+
- [SKYbrary — Simplified Technical English (STE)](https://skybrary.aero/articles/simplified-technical-english-ste)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: author-agent
|
|
3
|
+
description: Create or revise a workspace custom agent from requirements.
|
|
4
|
+
argument-hint: "[--test] <agent idea or requirements>"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
user-invocable: true
|
|
7
|
+
metadata:
|
|
8
|
+
spindle:
|
|
9
|
+
version: 1.0.0
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Create or update a project agent in `.github/agents/<agent-name>.agent.md` based on the user's requirements.
|
|
13
|
+
|
|
14
|
+
## Required skills
|
|
15
|
+
|
|
16
|
+
Before drafting or editing, read:
|
|
17
|
+
|
|
18
|
+
- **REQUIRED:** `int-writing-agents`
|
|
19
|
+
- **REQUIRED:** `int-writing-for-agents`
|
|
20
|
+
- **REQUIRED:** `int-testing-agent-guidance`
|
|
21
|
+
|
|
22
|
+
These skills define the complete authoring workflow. Every agent change requires the baseline and focused validation specified by `int-testing-agent-guidance`; `--test` does not disable or replace them.
|
|
23
|
+
|
|
24
|
+
When `--test` is present, also run the expanded testing workflow in `int-testing-agent-guidance`.
|
|
25
|
+
|
|
26
|
+
Do not modify unrelated files. Report the skill changed and validation performed, including any blockers or unverified requirements.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: author-design
|
|
3
|
+
description: "Use when a user asks to author a design for a feature, workflow, or behavior that has important product decisions to settle."
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
user-invocable: true
|
|
6
|
+
metadata:
|
|
7
|
+
spindle:
|
|
8
|
+
version: 1.1.1
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Authoring a Design
|
|
12
|
+
|
|
13
|
+
Help the user clarify what they want before turning an idea into a design. A design is optional; when one is created, it is authored and approved before its spec, and tickets follow the spec. Use this for product and project decisions, not as a gate for a clear, bounded task or a user who wants a spec without a design.
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
1. **Check the brief.** Identify the user's goal, why it matters, what success means, and which important decisions remain open. In an existing project, inspect relevant code and docs first; do not ask for facts the project already answers. If the user asks for a design and the request is specific with no consequential decision open, proceed to the design without unnecessary questioning. **Complete when** the brief is actionable or a concrete unresolved decision is identified.
|
|
18
|
+
|
|
19
|
+
2. **Clarify the outcome.** Ask one focused, open question about the uncertainty that most changes the result. Explain briefly what the answer will affect. Build on the user's responses and ask follow-ups only for unresolved decisions. If the user delegates a consequential decision, state your recommendation and why, then ask for confirmation before treating it as settled. **Complete when** goal, success criteria, scope, and constraints are understood or explicitly marked as assumptions.
|
|
20
|
+
|
|
21
|
+
3. **Compare approaches.** Present two or three viable approaches grounded in the project and clarified goal, explain their main trade-offs, recommend one, and ask the user to choose. If only one approach fits, explain why alternatives do not. Wait for the choice before drafting. **Complete when** the user has selected an approach or delegated the choice.
|
|
22
|
+
|
|
23
|
+
4. **Create or select the SDD feature workspace.**
|
|
24
|
+
- For a new feature, choose a concise title and author identity, then run `spindle sdd create --title "<feature title>" --author "<author>" --with-design`. Use the returned workspace and spec paths; `design.md` is beside `spec.md`. The command creates both template files, but fill and approve the design before filling the spec.
|
|
25
|
+
- For an existing numbered SDD feature workspace, reuse it. If `design.md` already exists, preserve it and edit it only as requested. If it is missing, first confirm `spec.md` is still the untouched template; then copy the design template from the Spindle installation's `build/Assets/Templates/sdd/design.md` into that workspace without overwriting existing files. In a source checkout, use `src/Assets/Templates/sdd/design.md`.
|
|
26
|
+
- If the existing spec has substantive content, stop before adding or revising a design: that would put design after spec. Explain the conflict and ask whether the user wants to continue as an explicit exception or keep the feature spec-only.
|
|
27
|
+
- Do not create a dated feature directory or a second SDD workspace for the same feature.
|
|
28
|
+
|
|
29
|
+
**Complete when** a single numbered feature workspace is selected and its `design.md` exists without overwriting user content.
|
|
30
|
+
|
|
31
|
+
5. **Write the design.** Use the existing `design.md` scaffold, replacing its `[PLACEHOLDER]` fields with the selected intent, success criteria, scope and constraints, considered approaches and trade-offs, chosen direction, and assumptions or open decisions. Write success criteria as observable outcomes that show the design achieves its intent; include measurable targets where practical without inventing precision. Leave detailed requirements and acceptance scenarios to the subsequent spec. Preserve unresolved decisions explicitly. **Complete when** the design represents the conversation, states observable success outcomes, and distinguishes user decisions from recommendations.
|
|
32
|
+
|
|
33
|
+
6. **Get approval.** Share the design path and its content for user approval or correction. Do not begin spec drafting until the user approves the design. If the user opts out of brainstorming or asks for a spec without design, respect that choice; do not create a design as a gate. After approval, ask the user to invoke `/to-spec` to create the spec in the same feature workspace; do not invoke it automatically. **Complete when** the design is approved, corrected for another review, or the user has chosen the spec-only path.
|
|
34
|
+
|
|
35
|
+
## Keep the conversation useful
|
|
36
|
+
|
|
37
|
+
- Prefer the user's own description before suggesting solutions; offer recommendations when asked or when the user delegates a decision.
|
|
38
|
+
- Keep questions specific to the project, and avoid reopening decisions already settled by the user or verified project evidence.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: author-instruction
|
|
3
|
+
description: Create or revise workspace-scoped Copilot instruction files from the user's requirements
|
|
4
|
+
argument-hint: "[--test] <instruction requirements>"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
user-invocable: true
|
|
7
|
+
metadata:
|
|
8
|
+
spindle:
|
|
9
|
+
version: 1.0.0
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Create or update a project instruction in `.github/instructions/**/*.instructions.md` based on the user's requirements.
|
|
13
|
+
|
|
14
|
+
## Required skills
|
|
15
|
+
|
|
16
|
+
Before drafting or editing, read:
|
|
17
|
+
|
|
18
|
+
- **REQUIRED:** `int-writing-instruction`
|
|
19
|
+
- **REQUIRED:** `int-writing-for-agents`
|
|
20
|
+
- **REQUIRED:** `int-testing-agent-guidance`
|
|
21
|
+
|
|
22
|
+
These skills define the complete authoring workflow. Every instruction change requires the baseline and focused validation specified by `int-testing-agent-guidance`; `--test` does not disable or replace them.
|
|
23
|
+
|
|
24
|
+
When `--test` is present, also run the expanded testing workflow in `int-testing-agent-guidance`.
|
|
25
|
+
|
|
26
|
+
Verify any `applyTo` glob against concrete in-scope files and near misses; every intended file must match, and out-of-scope files must not.
|
|
27
|
+
|
|
28
|
+
Do not modify unrelated files. Report the instruction changed and validation performed, including any blockers or unverified requirements.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: author-skill
|
|
3
|
+
description: Create or update a project skill from the user's requirements
|
|
4
|
+
argument-hint: "[--test] <skill idea or requirements>"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
user-invocable: true
|
|
7
|
+
metadata:
|
|
8
|
+
spindle:
|
|
9
|
+
version: 1.0.0
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Create or update a project skill in `.github/skills/<skill-name>/SKILL.md` based on the user's requirements.
|
|
13
|
+
|
|
14
|
+
## Required skills
|
|
15
|
+
|
|
16
|
+
Before drafting or editing, read:
|
|
17
|
+
|
|
18
|
+
- **REQUIRED:** `int-writing-skills`
|
|
19
|
+
- **REQUIRED:** `int-writing-for-agents`
|
|
20
|
+
- **REQUIRED:** `int-testing-agent-guidance`
|
|
21
|
+
|
|
22
|
+
These skills define the complete authoring workflow. Every skill change requires the baseline and focused validation specified by `int-testing-agent-guidance`; `--test` does not disable or replace them.
|
|
23
|
+
|
|
24
|
+
When `--test` is present, also run the expanded testing workflow in `int-testing-agent-guidance`.
|
|
25
|
+
|
|
26
|
+
Do not modify unrelated files. Report the skill changed and validation performed, including any blockers or unverified requirements.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill
|
|
3
|
+
description: "Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases."
|
|
4
|
+
user-invocable: false
|
|
5
|
+
metadata:
|
|
6
|
+
spindle:
|
|
7
|
+
version: 1.0.2
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Stress-test the user's proposal until its decisions are explicit and you share an understanding. Treat dependent decisions as a **design tree**.
|
|
11
|
+
|
|
12
|
+
## Interview rounds
|
|
13
|
+
|
|
14
|
+
1. Build the round's **frontier**: unresolved decisions whose prerequisites are settled. This is the question queue for the round.
|
|
15
|
+
2. Ask one queued question and wait for its answer. Use an interactive question tool when available, discovering it through tool search if needed; otherwise use chat. Each call or chat turn contains exactly one question.
|
|
16
|
+
3. Apply the answer and continue the queue, revising or skipping questions whose premises changed. Newly unlocked decisions wait for the next round.
|
|
17
|
+
4. When the queue is exhausted, recompute the frontier and start the next round.
|
|
18
|
+
|
|
19
|
+
Label each question visibly as **Round <R>, Question <Q> of <TOTAL> - <title>**, in chat or the tool's user-visible title. Start both counters at 1; increment the question number for each question asked and reset it to 1 when the round advances. The first question announces the new round without exposing the remaining queue.
|
|
20
|
+
|
|
21
|
+
Include the context needed to decide and a recommended answer. Phrase confirmations so "yes" accepts the recommendation; for choices, identify the recommended option.
|
|
22
|
+
|
|
23
|
+
Example opening:
|
|
24
|
+
|
|
25
|
+
> **Round 1, Question 1 of 5 - Output format**
|
|
26
|
+
>
|
|
27
|
+
> CSV meets the agreed export requirements. I recommend CSV. Shall we use it?
|
|
28
|
+
|
|
29
|
+
## Facts and completion
|
|
30
|
+
|
|
31
|
+
When a question needs an environmental fact, dispatch a lookup sub-agent to find it, then use its findings to frame the user's decision. While that sub-agent runs, continue with ready questions; only dependent questions wait for the result.
|
|
32
|
+
|
|
33
|
+
Once all decisions in the agreed scope are settled, summarize them and request shared-understanding confirmation. Wait for confirmation before acting on the proposal.
|