Install
$ agentstack add skill-louage-frw-agentic-coding-skill-sdd-implement-feature ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Skill: Lean SDD, Implement Feature
Purpose
Read a spec folder (specs/SDD/YYYY-MM-DD-/) and implement the required AL objects in app/ and test/ following the phases in plan.md. This is the implementation step of the lean feature loop.
When to Load
Load when:
- The user says "implement",
/speckit.implement, or "implement feature" spec.md+plan.md+tasks.mdexist for the target spec foldertasks.mdhas unchecked implementation tasks
Prerequisites
specs/SDD/YYYY-MM-DD-/spec.md, requirementsspecs/SDD/YYYY-MM-DD-/plan.md, implementation orderspecs/SDD/YYYY-MM-DD-/tasks.md, acceptance checklist.specify/memory/constitution.md, naming conventions and prefix
Step 1, Read Spec Folder
Read specs//spec.md → requirements, AC, data model
Read specs//plan.md → phase order, file map
Read specs//tasks.md → task checklist (to mark off as implemented)
Read .specify/memory/constitution.md → prefix, id range
> ` is the dated subfolder under specs/SDD/, e.g. specs/SDD/2026-07-08-fleet-registration/`.
Step 2, Verify Symbols Before Writing
For every base-app object referenced in spec.md:
- Run
al_symbolsearchorbclsp_documentSymbolsto confirm the symbol exists. - Run
bclsp_hoveron the publisher codeunit + event name to confirm the exact event signature. - Record verification result in
spec.mdevent table (Verified? ✅).
If a symbol cannot be confirmed, move it to the spec's Open Questions, do not write code against an unverified symbol.
Step 3, Implement Phase by Phase
Work through plan.md phases in order. After each phase:
- Mark completed tasks in
tasks.md - Run
al_get_diagnosticsto confirm 0 errors
AL Code Rules (always in force)
These are enforced by the auto-applied instructions; this is a reminder, not a copy:
- Naming:
..al, ≤26 chars (PascalCase),{Prefix}on every custom object - Folders:
src/{FeatureName}/for app objects,test/{FeatureName}/for test codeunits - DataClassification: Required on every custom table field
- No hardcoded strings: Use
Labelvariables for all user-visible text - Extension-only:
tableextension,pageextension,eventsubscriber, never modify base objects - Event subscribers:
local procedure, noCommitinside, exact base-app signature - Performance:
SetLoadFieldsbeforeFind*, noCalcFieldsin loops, set-based writes
Pattern: Table Extension
tableextension 50100 "{Prefix} {BaseName} Ext" extends "{BaseName}"
{
fields
{
field(50100; "{Prefix} {FieldName}"; {Type})
{
Caption = '{Caption}', Comment = '{lang}';
DataClassification = CustomerContent;
}
}
}
Pattern: Event Subscriber
[EventSubscriber(ObjectType::Codeunit, Codeunit::"{Publisher}", '{EventName}', '', false, false)]
local procedure {Publisher}_{EventName}({params})
begin
// Guard: only handle when relevant
if not {Condition} then
exit;
{BusinessLogic}
end;
Pattern: TryFunction Error Handling
[TryFunction]
local procedure TryExecute{Action}(): Boolean
begin
{RiskyOperation}
end;
procedure Execute{Action}()
var
ErrorMsg: Label 'Failed to {action}: %1', Comment = '%1 = error detail';
begin
if not TryExecute{Action}() then
Error(ErrorMsg, GetLastErrorText());
end;
Step 4, Write Tests (RED → GREEN)
After each implementation phase, create or extend the test codeunit with Given/When/Then tests that match the acceptance criteria in tasks.md.
[Test]
procedure {Scenario_AC1}()
var
// test variables
begin
// [SCENARIO] {AC description}
Initialize();
// [GIVEN] {setup}
// [WHEN] {action}
// [THEN] {assertion}
Assert.AreEqual({expected}, {actual}, '{AC}');
end;
After tests compile and pass, mark the corresponding AC row in tasks.md as done.
Step 5, Run Diagnostics
al_get_diagnostics → 0 errors required before marking phase complete
If errors exist, fix them before moving to the next phase.
Step 6, Update tasks.md
After each completed phase, check off the implementation tasks:
- [x] T1: data-layer task, ✅ {ObjectName} (ID: {id})
- [x] T2: business-logic task, ✅ {CUName}.{ProcName}
Update specs/roadmap.md status to 🔄 In progress (or leave if already set).
Skills Evidencing
> **Skills loaded**: skill-sdd-implement-feature (implement phase)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Louage
- Source: Louage/frw-agentic-coding
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.