Replica Deploy
Jakeschincariol/replica-skill
Ships an app clone live on the user's own domain: a preflight gate (tests green, parity must-haves done, rebrand sweep clean, listing linted, legal pages up), production database and env vars, the…
A skill your agent uses when diagnosing problems in an InsForge project — reactive failures (SDK error object, HTTP 4xx/5xx, gateway timeout 502/503/504, edge function failure or timeout…
$ npx skills add aiskillstore/marketplace --skill insforge-debug -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aiskillstore/marketplace insforge-debug --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/insforge/insforge-debug .claude/skills/insforge-debug && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "insforge-debug" agent skill from https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debug into .claude/skills/insforge-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insforge-debug", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debugType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aiskillstore/marketplace --skill insforge-debug -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aiskillstore/marketplace insforge-debug --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/insforge/insforge-debug .agents/skills/insforge-debug && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "insforge-debug" agent skill from https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debug into .agents/skills/insforge-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insforge-debug", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aiskillstore/marketplace --skill insforge-debug -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aiskillstore/marketplace insforge-debug --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/insforge/insforge-debug .cursor/skills/insforge-debug && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "insforge-debug" agent skill from https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debug into .cursor/skills/insforge-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insforge-debug", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aiskillstore/marketplace.git --path skills/insforge/insforge-debug--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aiskillstore/marketplace --skill insforge-debug -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aiskillstore/marketplace insforge-debug --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/insforge/insforge-debug .gemini/skills/insforge-debug && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "insforge-debug" agent skill from https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debug into .gemini/skills/insforge-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insforge-debug", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aiskillstore/marketplace insforge-debugInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aiskillstore/marketplace --skill insforge-debug -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/insforge/insforge-debug .github/skills/insforge-debug && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "insforge-debug" agent skill from https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debug into .github/skills/insforge-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insforge-debug", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aiskillstore/marketplace --skill insforge-debug -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aiskillstore/marketplace insforge-debug --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aiskillstore/marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/insforge/insforge-debug .opencode/skills/insforge-debug && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "insforge-debug" agent skill from https://github.com/aiskillstore/marketplace/tree/main/skills/insforge/insforge-debug into .opencode/skills/insforge-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "insforge-debug", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
insforge-debugA skill your agent uses when diagnosing problems in an InsForge project — reactive failures (SDK error object, HTTP 4xx/5xx, gateway timeout 502/503/504, edge function failure or timeout…
Insforge Debug is an agent skill from aiskillstore/marketplace. Use when diagnosing problems in an InsForge project — reactive failures (SDK error object, HTTP 4xx/5xx, gateway timeout 502/503/504, edge function failure or timeout, login/OAuth/auth errors, RLS denial, realtime channel issues, slow query on one endpoint, edge function or Vercel deploy failure), proactive audits (security/RLS review, performance/index review, system health check, pre-launch readiness), or when the user has an error but doesn't know where to start.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including reference files (for example `agents/openai.yaml`, `references/advisor.md` and `references/ai-assisted.md`).
It sits in Backend & APIs, covering Query optimization, Feature launches and release readiness and OAuth and OpenID Connect. It works with Vercel. The repository describes itself as: Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4ac52da. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Insforge Debug loads about 3.8k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 121 tokens; SKILL.md has 1,828 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from aiskillstore/marketplace at commit 4ac52da, republished under its Apache-2.0 licence (© aiskillstore). 1,828 words, ~3,799 tokens.
.claude/skills/insforge-debug/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.Diagnose problems in InsForge projects by combining the backend's observability primitives — logs, metrics, db-health, advisor, policies, metadata, error objects, deploy state, and AI assist. This skill provides:
references/)Always use npx -y @insforge/cli — never install the CLI globally.
When the user gives a concrete description (error message, failing URL, HTTP status), hand it to the InsForge debug agent. Unlike the other primitives, this one returns suggestions, not just observations — verify the diagnosis against the primitives it cites before acting on it.
npx -y @insforge/cli diagnose --ai "<issue description>"See references/ai-assisted.md for when to use this first vs when to skip, and how to verify the output.
Each primitive is one independently-queryable observability surface backed by a distinct underlying data source. Real diagnoses are compositions of primitives.
All commands run via npx -y @insforge/cli .... The (command) shown next to each primitive is the actual CLI command — primitive names are concept labels, not CLI subcommand names (e.g., "DB health" is diagnose db, not diagnose db-health; "Policies" is db policies, not diagnose policies).
| Primitive (command) | What you see | Reference |
|---|---|---|
Logs (logs <source>; diagnose logs for cross-source aggregate) | Time-stream of events from 5 backend sources (insforge.logs / postgREST.logs / postgres.logs / function.logs / function-deploy.logs) | references/logs.md |
Metrics (diagnose metrics) | EC2 instance time-series (CPU / memory / disk / network) over 1h / 6h / 24h / 7d | references/metrics.md |
DB health (diagnose db) | Current Postgres state via 7 named checks (connections / slow-queries / bloat / size / index-usage / locks / cache-hit) | references/db-health.md |
Advisor (diagnose advisor --json) | Static-scan issues across 3 categories (security / performance / health) with ruleId / affectedObject / recommendation | references/advisor.md |
Policies (db policies) | Active RLS rules from pg_policies (USING / WITH CHECK per cmd per role) — returns all policies as a dump | references/policies.md |
Metadata (metadata --json) | Declarative backend state dump (auth config / tables / buckets / functions / AI models / realtime channels) | references/metadata.md |
| Error objects (no command — read SDK / HTTP response) | SDK error envelope + HTTP status — the routing table from a client-visible error to the right log source | references/error-objects.md |
Deploy state (deployments list + deployments status <id> --json + logs function-deploy.logs) | Frontend (Vercel) deployment history + per-deploy metadata, plus edge function deploy logs | references/deploy-state.md |
AI assist (diagnose --ai "<description>") | LLM agent that combines the other primitives — returns a diagnosis with suggestions | references/ai-assisted.md |
Each recipe is a primitive call sequence with one-line "look for X" at each step. Command syntax, flags, and deep interpretation are in the per-primitive references above.
{ data: null, error: { code, message } }PGRST*, route by prefix using the table in the reference.connections, locks, slow-queries) — only if the error suggests DB issue (PostgREST timeout, lock conflict).Same bug, two surfacings. Writes (INSERT / UPDATE / DELETE) fail loudly with 403. Reads (SELECT) fail silently with an empty array — PostgREST filters denied rows out instead of returning 403, so the request looks successful with zero rows. Diagnosis path is the same except step 1 only applies to the 403 variant.
postgREST.logs) — 403 variant only: find the policy violation event with table and role context. Empty-result variant: skip — no error is logged for silently-filtered rows.auth.uid() / requesting_user_id(); for third-party auth like Clerk/Auth0, is the provider registered as a JWT issuer?).db query "<sql>") — empty-result variant only: confirm rows that should be visible actually exist by querying as service role (not as the user): npx -y @insforge/cli db query "SELECT id, user_id FROM <table>". Distinguishes "RLS filtered everything" from "no matching data exists".insforge.logs) — find auth errors with timestamp and provider context.function.logs) — get the error stack and execution context.status: "active".npx -y @insforge/cli functions code <slug> — inspect the source for obvious issues.functions deploy failedfunction-deploy.logs) — find the build/push error.deployments deploy failed (Vercel)deployments list + status <id> --json) — read status, metadata.webhookEventType, and envVarKeys.npm run build — reproduce the same error locally for faster iteration.postgres.logs) — find the query text and timestamp.slow-queries, index-usage) — slow-queries only catches it while still running (>5s snapshot); check index-usage for a missing index. Already finished? advisor (--category performance --json) has the pg_stat_statements text + mean time; step 1 has the timestamp.--range 24h) — only a rising trend or OOM kills/restarts change the answer.
OOM evidence lives in postgres.logs as the crash-recovery aftermath ("terminating connection
because of crash of another server process" / "automatic recovery in progress").--range 1h) — confirm system-wide pressure (CPU / memory / disk).connections, locks, slow-queries.diagnose logs aggregate) — error patterns across sources at the spike timestamp.--severity critical) — pre-existing known issues that may explain the degradation.insforge.logs) — WebSocket errors and subscription failures.enabled: true.Retry-After header is returned. Don't waste time grepping logs.--range 1h) — overall backend load context.Route by URL subsystem before drilling:
| URL pattern | Drill into |
|---|---|
/api/database/records/... | logs (postgREST.logs → postgres.logs) + db-health (locks, slow-queries) |
/functions/<slug> | logs (function.logs) — function may be crash-looping |
/api/auth/... | logs (insforge.logs) |
| Any path during system-wide spike | metrics (--range 1h) |
504s across unrelated paths on a small instance: suspect OOM first. Intermittent gateway timeouts hitting database, auth, and functions alike are the classic out-of-memory signature on the smallest instance sizes: the kernel kills Postgres, every in-flight request times out at the gateway while crash recovery runs, and it repeats on the next load spike.
Fast path: npx -y @insforge/cli diagnose incident (Platform login required). The report is
built entirely on the cloud side — Prometheus scrape history, platform records, an outbound
database probe — so it works even while the instance is down or wedged, exactly when
diagnose logs stops answering. It returns a verdict (oom_likely,
platform_operation_in_progress, paused_or_suspended, metrics_stopped, down_unknown,
no_incident_detected) with the evidence and the recommended action; oom_likely already means
the restart/memory correlation checks below passed on the platform side.
If the command is unavailable (older CLI/backend, --api-key link mode), confirm manually in
logs (postgres.logs) via the crash-recovery aftermath — "terminating connection because of
crash of another server process" / "automatic recovery in progress" — time-correlated with the
5xx burst: recovery evidence alone only proves an unclean Postgres restart, so the timestamps
must line up before OOM becomes the leading diagnosis
(references/metrics.md). With that evidence the fix is headroom, not a
retry loop:
npx -y @insforge/cli projects upgrade-instance <type>
(nano → micro → small → medium → large → xl), or dashboard → Project Settings →
Compute & Disk. On the free plan, upgrade to a paid plan first, then pick the size. The
resize changes the bill and the CLI asks for interactive confirmation — get the user's
go-ahead first, then run unattended with the CLI-level --yes (the -y in npx -y is
npm's install flag, not the confirm-skip). The resize is async — poll projects get until
operation_status clears before declaring the incident resolved.Requires Platform login (
npx -y @insforge/cli login). Not available when the project is linked via--api-key— fall back todb-health+policies+metadatafor a manual audit in that case.
--severity critical first, then warnings.--category security) — focus on security issues; cross-verify with policies (RLS coverage) and metadata (auth config, public buckets, secret presence).--category performance) — cross-verify with db-health (slow-queries, index-usage, bloat).--category health) — cross-verify with metrics (resource trends over 7d).isResolved: true for each addressed ruleId.diagnose --ai "<error or URL>") — get a starting hypothesis.Some diagnoses end at an InsForge-side defect, not a project misconfiguration: a platform bug or regression, an SDK call that misbehaves, docs or a skill that contradict observed behavior, or a missing capability. A debug session is exactly where these get confirmed — report them while the evidence is in hand:
npx -y @insforge/cli feedback --json \
--type bug --component backend --area db \
--title "<one-line summary>" \
--detail "<what happened vs expected, minimal repro>" \
--command "<the failing call>" \
--error "<verbatim error from logs>" \
--workaround "<what you did instead>"No login required; common PII patterns (emails, credential/key formats, public IPs, home-directory usernames) are redacted locally — pattern-based, so still keep user data out. Use --component sdk --language <lang> for SDK defects; --component docs or --component skills with --doc and --expected when documentation contradicts reality; --type feature-request when the finding is "not supported". Then continue the user's task with the workaround — never block on the report, and never file feedback for problems in the user's own app code or config. Full flag reference: the insforge-cli skill's Feedback section.
© aiskillstore, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (references) in skills/insforge/insforge-debug of aiskillstore/marketplace.
Open the folder on GitHubat commit 4ac52da
Insforge Debug next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Insforge Debug this skillaiskillstore/marketplace | 430 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Replica DeployJakeschincariol/replica-skill | 734 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Frontmcp Configagentfront/frontmcp | 146 | — | ~7k | Automated safety check: Pass | Apache-2.0 | |
| Frontmcp Guidesagentfront/frontmcp | 146 | — | ~6.3k | Automated safety check: Pass | Apache-2.0 | |
| Vercel Connectvercel/vercel-plugin | 301 | — | ~5.3k | Automated safety check: Pass | Custom licence | |
| Emulate Seedyonatangross/orchestkit | 288 | — | ~4.5k | Automated safety check: Pass | MIT |
Jakeschincariol/replica-skill
Ships an app clone live on the user's own domain: a preflight gate (tests green, parity must-haves done, rebrand sweep clean, listing linted, legal pages up), production database and env vars, the…
agentfront/frontmcp
A skill your agent uses when configuring a FrontMCP server through frontmcp.config or the @FrontMcp options.
agentfront/frontmcp
Tutorials, end-to-end walkthroughs, and complete reference projects for FrontMCP.
vercel/vercel-plugin
Vercel Connect expert guidance for securely obtaining scoped credentials for third-party services on behalf of apps or users.
yonatangross/orchestkit
Generate emulate seed configs for stateful API emulation. An agent skill from yonatangross/orchestkit.
vercel-labs/vercel-openclaw-archived
Slack channel specialist workflow: debug Slack OAuth vs delivery-ready, /slack/events fast path, raw-body signatures, route repair, boot-message cleanup, and lastForward.
aiskillstore/marketplace
Analyze codebase with tokei (fast line counts by language) and difft (semantic AST-aware diffs).
aiskillstore/marketplace
Process JSON with jq and YAML/TOML with yq. An agent skill from aiskillstore/marketplace.
aiskillstore/marketplace
Scans for project documentation files (AGENTS.md, CLAUDE.md, GEMINI.md, COPILOT.md, CURSOR.md, WARP.md, and 15+ other formats) and synthesizes guidance.
aiskillstore/marketplace
Modern file and content search using fd, ripgrep (rg), and fzf.
aiskillstore/marketplace
Modern find-and-replace using sd (simpler than sed) and batch replacement patterns.
aiskillstore/marketplace
Automatically activated when user asks how something works, wants to understand unfamiliar code, needs to explore a new codebase, or asks questions like "where is X implemented?", "how does Y…
Works with
Categories
A skill your agent uses when diagnosing problems in an InsForge project — reactive failures (SDK error object, HTTP 4xx/5xx, gateway timeout 502/503/504, edge function failure or timeout…. Insforge Debug is an agent skill from aiskillstore/marketplace. Use when diagnosing problems in an InsForge project — reactive failures (SDK error object, HTTP 4xx/5xx, gateway timeout 502/503/504, edge function failure or timeout, login/OAuth/auth errors, RLS denial, realtime channel issues, slow query on one endpoint, edge function or Vercel deploy failure), proactive audits (security/RLS review, performance/index review, system health check, pre-launch readiness), or when the user has an error but doesn't know where to start.
Insforge Debug fits situations like: diagnosing problems in an InsForge project — reactive failures (SDK error object; gateway timeout 502/503/504; edge function failure; login/OAuth/auth errors.
Run `npx skills add aiskillstore/marketplace --skill insforge-debug -a claude-code`. Or copy the skill folder (skills/insforge/insforge-debug in aiskillstore/marketplace) into .claude/skills/insforge-debug in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aiskillstore/marketplace --skill insforge-debug -a codex`. Or copy the skill folder (skills/insforge/insforge-debug in aiskillstore/marketplace) into .agents/skills/insforge-debug in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aiskillstore/marketplace --skill insforge-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/insforge-debug, .gemini/skills/insforge-debug, .github/skills/insforge-debug and .opencode/skills/insforge-debug in your project.
Going by SKILL.md and its folder, Insforge Debug needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Insforge Debug is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Insforge Debug: Replica Deploy (Jakeschincariol/replica-skill, 734 stars), Frontmcp Config (agentfront/frontmcp, 146 stars), Frontmcp Guides (agentfront/frontmcp, 146 stars) and Vercel Connect (vercel/vercel-plugin, 301 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aiskillstore (a GitHub organization) maintains it in aiskillstore/marketplace, which has 430 GitHub stars. The repository holds 1,085 skills in this directory. The repository was last updated on October 7, 2026.
Source: aiskillstore/marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.