console-service
Provides implementation guidance for ConsoleService — the environment-aware console wrapper in this Angular project
Install / Use
npx skills add Suriya-Kodehode/Angular --skill console-serviceInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of console-service
console-service scores 63/100 on our quality scale, 2055th of 2,717 Development & Engineering skills we index.
Its SKILL.md is 5.4 KB long, well organised into 11 sections with 4 code examples: a solid amount of guidance for an agent.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- Our last check on 2026-09-27 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
console-service compared with similar skills
All 4 of these similar skills score higher than console-service; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| console-service (this skill)by Suriya-Kodehode | 63 | 0 | — | SKILL.md |
| ai-job-searchby MadsLorentzen | 100 | 44.1k | today | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | 1d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 5d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 5d ago | SKILL.md |
Frequently asked questions
- How do I install console-service?
- Run
npx skills add Suriya-Kodehode/Angular --skill console-service. The install tabs above show the steps for each supported agent. - Which AI agents does console-service work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is console-service safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is console-service still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubname: console-service description: 'Provides implementation guidance for ConsoleService — the environment-aware console wrapper in this Angular project. Use when adding console logging to any Angular file, using contextConsole, always, never, or opts overrides, checking visibility rules, or understanding how the bootstrap patch gates console output. Keywords: console, logging, ConsoleService, contextConsole, always, never, opts, enableConsole, console.log, console.warn, console.error, suppress, force, scoped logger, console gating, production logging, dev logging.'
ConsoleService — Usage Guide
Location
projects/my-app/src/app/core/services/console/
console.service.ts ← service, types, contextConsole, opts/always/never
console.patch.ts ← patchConsole() bootstrap helper
Path alias: @app/core/services/console/console.service
When to Use This Skill
- Adding any
console.*call in Angular files - Deciding whether to use
always,never, oropts() - Using timers (
time/timeEnd/timeLog), groups,table,dir,assert, orcount - Understanding why a log is or isn't appearing
- Checking visibility rules for dev vs prod
How It Works
ConsoleService is patched over the native console once in App.ngOnInit() via patchConsole() from console.patch.ts. After that, all console.* calls in the app (including third-party libraries) are automatically gated by ConsoleService.enabled, which is initialised from environment.enableConsole.
| Environment | enableConsole | Default behaviour |
|-------------|-----------------|-------------------|
| ng serve (dev) | true | All console output visible |
| ng build (prod) | false | All console output silent unless force: true |
Scoped Logger (Recommended Pattern)
Add one line at the top of any file — no injection needed:
import { contextConsole } from '@app/core/services/console/console.service';
const console = contextConsole('ClassName');
Every console.* call in that file is then auto-prefixed: [ClassName] message.
ALWAYS use contextConsole for any new logging in this project.
Per-Call Overrides
Import always or never alongside contextConsole when needed:
import { contextConsole, always, never } from '@app/core/services/console/console.service';
const console = contextConsole('ClassName');
// Force output even in production:
console.error(always, 'Critical failure:', err); // → [ClassName] Critical failure: ...
// Permanently silence even in dev:
console.log(never, 'Polling tick'); // → silent
// Normal log — gated by enableConsole:
console.log('[methodName] value:', value); // → [ClassName] [methodName] value: ...
Use opts({ force, suppress }) for custom combinations not covered by always/never.
Message Prefix Convention
When logging inside a method, include the method name as a prefix string:
console.log('[methodName] label:', value);
// Output: [ClassName] [methodName] label: value
Visibility Rules (evaluated in order)
| Rule | Condition | Result |
|------|-----------|--------|
| 1 | suppress: true (per-call) | Always silent — wins over everything |
| 2 | force: true (per-call) | Always output — bypasses global toggle |
| 3 | enabled = false | Silent (no override present) |
| 4 | enabled = true | Output |
suppress always beats force if both are set.
Available Methods
All methods accept always, never, or opts() as an optional first argument.
| Method | Notes |
|--------|-------|
| log, warn, error, debug, info, trace | Standard output |
| group(label?), groupCollapsed(label?) | Opens a collapsible group |
| groupEnd() | Closes current group |
| clear() | Clears the console |
| count(label?) | Increments named counter |
| countReset(label?) | Resets named counter |
| time(label?) | Starts named timer |
| timeEnd(label?) | Stops timer, logs elapsed |
| timeLog(label?, ...data) | Logs current timer value |
| assert(condition?, ...data) | Logs error if condition is false |
| table(tabularData?, properties?) | Tabular display |
| dir(item?, options?) | Interactive object listing |
In contextConsole(), label methods (count, countReset, time, timeEnd, timeLog) automatically prepend the tag to the label.
Quick Reference
| Intent | Syntax |
|--------|--------|
| Scoped logger (recommended) | const console = contextConsole('ClassName') at top of file |
| Normal log | console.log('[method] label:', value) |
| Always visible (prod-safe) | console.error(always, '[method] msg:', err) |
| Always silent | console.log(never, '[method] msg') |
| Group related logs | console.group('[method]'); ... console.groupEnd(); |
| Time an operation | console.time('label'); ... console.timeEnd('label'); |
| Display object tree | console.dir(obj) |
| Display array as table | console.table(arr) |
| Runtime enable | this.consoleService.enabled = true |
| Runtime disable | this.consoleService.enabled = false |
Security Rules
- Never log auth tokens, passwords, API keys, or user PII — even behind
never(the text still exists in source). - Use
alwaysonly for operational messages (errors, disconnects) — not data-bearing payloads. - Audit any call site that logs HTTP responses or form values before using
always.
Related Skills
ai-job-search
44.1kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
