registry  /  @powerkraut/devkit  /  0.11.0

@powerkraut/devkit@0.11.0

Claude Code devkit plugin — agents, skills en guidelines voor AI-assisted development

AI Security Review

scanned 6d ago · by lpm-firewall-ai

No confirmed malicious attack surface is established. The package is an AI/dev workflow CLI with user-invoked setup, credential storage, Bitbucket/GitLab utilities, and build validation commands.

Static reason
One or more suspicious static signals were detected.; previous stored version diff introduced dangerous source
Trigger
User explicitly runs devkit subcommands such as setup, bb validate, bb push, or run build.
Impact
User-authorized project configuration, credential storage, repository API validation, and optional git/build operations.
Mechanism
Interactive developer tooling invoking git, npm, and repository APIs for configured workflows.
Rationale
Static inspection found powerful CLI capabilities, but they are package-aligned, documented, and activated by explicit user commands rather than install/import execution. The scanner's dangerous primitives map to developer workflow features, not concrete unconsented attack behavior.
Evidence
package.jsondist/cli.jsdist/setup/setup.jsdist/setup/validate.jsdist/clients/bitbucket/origin.js~/.claude/devkit-settings.json~/.claude/settings.json~/.claude/devkit-credentials.json.claude/keys/bitbucket-review.token.claude/devkit-plugin.json.claude/devkit-workspaceCLAUDE.md
Network endpoints3
bitbucket.orgapi.bitbucket.org/2.0id.atlassian.com/manage-profile/security/api-tokens

Decision evidence

public snapshot
AI called this Clean at 86.0% confidence as Benign with low false-positive risk.
Evidence for block
    Evidence against
    • package.json has no install/preinstall/postinstall hooks; only build/dev scripts and a user-invoked bin.
    • dist/cli.js wires explicit CLI subcommands; network and write actions are not import-time.
    • dist/setup/setup.js prompts before npm install -g and credential storage under ~/.claude.
    • dist/setup/validate.js Bitbucket API calls are validation actions and create/delete test comments/branches.
    • dist/clients/bitbucket/origin.js only parses git origin and builds bitbucket.org file URLs.
    • No obfuscated payloads, dependency confusion, persistence, or unsolicited exfiltration found in inspected files.
    Behavioral surface
    Source
    ChildProcessDynamicRequireEnvironmentVarsFilesystemNetworkShell
    Supply chain
    HighEntropyStringsUrlStrings
    Manifest
    NoLicense
    scanned 31 file(s), 136 KB of source, external domains: api.bitbucket.org, bitbucket.org, gitlab.com, id.atlassian.com, registry.npmjs.org

    Source & flagged code

    5 flagged · loading source
    dist/clients/gitlab/mr.jsView file
    1import { execSync } from 'node:child_process'; L2: import { die, gitUserName } from '../bitbucket/utils.js';
    High
    Child Process

    Package source references child process execution.

    dist/clients/gitlab/mr.jsView on unpkg · L1
    dist/build/runner.jsView file
    19process.stdout.write(` $ ${cmd}\n`); L20: const result = spawnSync(cmd, { shell: true, stdio: 'inherit' }); L21: if (result.status !== 0) {
    High
    Shell

    Package source references shell execution.

    dist/build/runner.jsView on unpkg · L19
    dist/setup/validate.jsView file
    135{ L136: const { existsSync, readFileSync } = await import('node:fs'); L137: const { join } = await import('node:path');
    Medium
    Dynamic Require

    Package source references dynamic require/import behavior.

    dist/setup/validate.jsView on unpkg · L135
    dist/setup/setup.jsView file
    51process.stdout.write(' npm install -g @powerkraut/devkit ...\n'); L52: execSync('npm install -g @powerkraut/devkit', { stdio: 'inherit' }); L53: process.stdout.write('✅ Plugin geïnstalleerd\n');
    High
    Runtime Package Install

    Package source invokes a package manager install command at runtime.

    dist/setup/setup.jsView on unpkg · L51
    dist/clients/bitbucket/origin.jsView file
    matchType = previous_version_dangerous_delta matchedPackage = @powerkraut/devkit@0.9.0 matchedIdentity = npm:QHBvd2Vya3JhdXQvZGV2a2l0:0.9.0 similarity = 0.862 summary = stored previous version shares package body but lacks this dangerous source file
    Critical
    Previous Version Dangerous Delta

    This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.

    dist/clients/bitbucket/origin.jsView on unpkg

    Findings

    1 Critical3 High4 Medium5 Low
    CriticalPrevious Version Dangerous Deltadist/clients/bitbucket/origin.js
    HighChild Processdist/clients/gitlab/mr.js
    HighShelldist/build/runner.js
    HighRuntime Package Installdist/setup/setup.js
    MediumDynamic Requiredist/setup/validate.js
    MediumNetwork
    MediumEnvironment Vars
    MediumStructural Risk Force Deep Review
    LowScripts Present
    LowFilesystem
    LowHigh Entropy Strings
    LowUrl Strings
    LowNo License