用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/hashicorp/terraform-provider-aws --skill smarterr命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | smarterr |
| description | Refactor error handling to use smarterr. |
Assume the @maintainer persona.
Use this skill to refactor error handling to use smarterr (internal/smerr[../../../internal/smerr/]).
Trigger this skill when the user:
Required:
aws_s3_bucket).If the user provides a human readable name (e.g. "S3 Bucket") rather than the Terraform resource, confirm the target resource before proceeding.
smerr (provider wrapper) for all diagnostic callssmarterr only for bare error returns| Legacy | Replace With |
|---|---|
sdkdiag.AppendFromErr(diags, err) | smerr.Append(ctx, diags, err) |
sdkdiag.AppendErrorf(diags, "msg", err) | smerr.Append(ctx, diags, err, smerr.ID, id) |
response.Diagnostics.AddError("msg", err.Error()) | smerr.AddError(ctx, &response.Diagnostics, err) |
create.AppendDiagError(diags, ..., err) | smerr.Append(ctx, diags, err, smerr.ID, id) |
// Before
return nil, err
// After
return nil, smarterr.NewError(err)
// Before
return tfresource.AssertSingleValueResult(...)
// After
return smarterr.Assert(tfresource.AssertSingleValueResult(...))
Framework:
// Before: resp.Diagnostics.Append(...)
// After: smerr.AddEnrich(ctx, &resp.Diagnostics, ...)
SDKv2:
// Before: return append(diags, someFunc()...)
// After: return smerr.AppendEnrich(ctx, diags, someFunc())
Framework (Add verbs):
smerr.AddError(ctx, &response.Diagnostics, err, smerr.ID, id)smerr.AddEnrich(ctx, &response.Diagnostics, diagnosticFunc())SDKv2 (Append verbs):
smerr.Append(ctx, diags, err, smerr.ID, id)smerr.AppendEnrich(ctx, diags, diagnosticFunc())Both contexts:
smarterr.NewError(err) - Wrap bare returnssmarterr.Assert(tfresource.AssertSingleValueResult(...)) - Wrap helpersctx firstsmerr.ID, resourceID when available (e.g., d.Id(), state.Name.String())@FrameworkResource, uses terraform-plugin-framework@SDKResource, uses terraform-plugin-sdk/v2, returns *schema.ResourceApply these patterns exactly. No schema or logic changes.