or run

npx @tessl/cli init
Log in

Version

Files

docs

asset-management.mdautomation.mdconfiguration.mddynamic-resources.mdindex.mdlogging-diagnostics.mdoutput-system.mdprovider-development.mdresource-management.mdruntime-operations.mdstack-references.mdutilities.md
tile.json

rubric.jsonevals/scenario-4/

{
  "context": "Evaluates how well the solution uses @pulumi/pulumi provider-server primitives to expose a feature-flag resource with schema bridging, lifecycle CRUD/diff, and parameterized packaging.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Server entry",
      "description": "Uses `provider.main` from `@pulumi/pulumi/provider` to start the gRPC ResourceProviderService around the custom Provider so tests can attach.",
      "max_score": 10
    },
    {
      "name": "Schema export",
      "description": "Implements `Provider.schema` or `Provider.getSchema` to return a JSON schema string declaring `feature:index:Flag` with required `name`, optional `description`, boolean `enabled` defaulting false, optional `prefix`, and replaceOnChanges for `name`, reachable via the provider `getSchema` RPC.",
      "max_score": 25
    },
    {
      "name": "Create/read flow",
      "description": "Implements `Provider.create` and `Provider.read` using in-memory storage, returning ids prefixed with `flag-` by default and echoing provided properties while satisfying the Provider contract (outs in create, props/inputs in read).",
      "max_score": 20
    },
    {
      "name": "Update/diff semantics",
      "description": "Implements `Provider.diff` to surface replacements via `replaces` when `name` changes and a no-replacement update when only `description` changes; `Provider.update` applies in-place description changes while preserving other fields.",
      "max_score": 20
    },
    {
      "name": "Parameterize prefix",
      "description": "Supports `Provider.parameterizeArgs` or `parameterizeValue` returning a `ParameterizeResult` and uses the provided value to override the id prefix consumed by `create` outputs.",
      "max_score": 15
    },
    {
      "name": "Version reporting",
      "description": "Sets `Provider.version` so `getPluginInfo` RPC returns a valid semver and reuses that version in schema/parameterize responses.",
      "max_score": 10
    }
  ]
}