agentleFS
fmindfmind/dotfiles/skills/auth-status/SKILL.md

auth-status

Skill13 starsChanged 4 days agoMITView on GitHub

Check CLI and ADC logins across providers: expiry, scopes, re-login commands.

  • Reads credentials

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • fmind/dotword for word, first seen Nov 8, 2026

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Probe other named connectors: only those the task or user names, each read-only with its exit status checked:

    line 26

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Auth Status

Answer "am I logged in, until when, and what must I run?" with read-only probes, then hand the user the exact interactive command. dot doctor --deep owns the workstation probes; this skill adds the remaining connectors, scope coverage, and recovery. dot-cli authentication owns login policy, scopes, and account overrides; each connector skill owns its provider's account selection.

Workflow

  1. Run the workstation probes: dot doctor --deep --json checks GitHub, the gcloud CLI, ADC, and Workspace with bounded probes and never prints tokens. Read only the auth group; condition distinguishes unauthenticated from broken (state unknown) and flags insecure when gh keeps its token in plaintext hosts.yml.

    dot doctor --deep --json | jq -c '.checks[] | select(.group == "auth") | {name, status, condition, details}'
  2. Check scope coverage: compare granted scopes with the configured policy (dot config show, keys auth.github.scopes, auth.workspace.scopes, and auth.gcp.adc_scopes). GitHub lists them in gh auth status --active --hostname github.com (the token is masked); Workspace in gws auth status | jq '{user, token_valid, has_refresh_token, scopes}'. A missing scope needs a new login even when the probe passes; a scope beyond the policy is a one-off grant still held, so report it with its removal command: dot setup github for scopes in auth.github.remove_scopes, gh auth refresh -h github.com --remove-scopes <scopes> for other GitHub scopes, and dot login workspace --force for Workspace.
  3. Probe other named connectors: only those the task or user names, each read-only with its exit status checked:

    ProviderProbeRecovery
    Colabcolab --auth adc sessions (allocates no VM; inspect stderr before trusting an empty list)dot login colab
    Hugging Facehf auth whoamihf auth login
    Kagglekaggle competitions list --page-size 1 >/dev/nullkaggle auth login
    AWS SSOaws sts get-caller-identity --profile <profile> --no-cli-pageraws sso login --profile <profile>
    Databricksdatabricks auth profiles (validates each profile)databricks auth login --host <url> --profile <profile>
    Atlassianacli auth status; API-token Jira: acli jira auth statusacli auth login
  4. Report only provider-exposed expiry: AWS SSO sessions: jq -r 'select(has("accessToken")) | .expiresAt' ~/.aws/sso/cache/*.json (client registrations in the same cache expire separately; never print the file). Otherwise write "unknown"; never infer expiry from file dates.
  5. Check environment overrides: environment credentials win over stored logins, and gws also reads GOOGLE_WORKSPACE_CLI_* from a .env in the working directory or a parent. Report presence only, never values:

    for name in GH_TOKEN GITHUB_TOKEN GOOGLE_APPLICATION_CREDENTIALS CLOUDSDK_AUTH_ACCESS_TOKEN_FILE \
      GOOGLE_WORKSPACE_CLI_TOKEN GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE GEMINI_API_KEY GOOGLE_API_KEY \
      HF_TOKEN KAGGLE_API_TOKEN KAGGLE_KEY AWS_PROFILE AWS_ACCESS_KEY_ID AWS_SESSION_TOKEN \
      DATABRICKS_HOST DATABRICKS_TOKEN DATABRICKS_CLIENT_SECRET; do
      if [ -n "$(printenv "$name")" ]; then echo "$name is set"; fi
    done
  6. Report and hand off: for each provider, give the account (no token), status, scope gaps, expiry, and next action. Browser logins are interactive: give each as ! <command> for the user to run in the session, preferring dot login or dot login github|workspace|gcp|colab over native commands, since a native ADC login drops the configured Colab and BigQuery scopes (Colab ADC). When the user says they logged in, re-run only the failed probes.

Gotchas

  • Never print secrets: no print-access-token, gh auth token, gws auth export, databricks auth token, hf auth token, kaggle auth print-access-token, kaggle config view, aws configure export-credentials, or --show-token in a transcript; dot's probes capture token output internally.
  • Exit 0 is not proof: gh auth status --json and Colab can succeed while reporting a failure; read the state and stderr.
  • Probing is read-only: logging in, switching accounts, adding scopes, or editing dot configuration needs the user.

Documentation

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.