diff --git a/AGENTS.md b/AGENTS.md index e29096e..f05501e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,6 +3,7 @@ A skill is a set of local instructions to follow that is stored in a `SKILL.md` ### Available skills - new-api-guide: Guide users through the APIOps Cycles method to design and scope a new API from business need to publishing and improvement. Use when the user needs help deciding the current station, checking whether entry or exit criteria are met, selecting the right next resource or canvas from the canonical method data, gathering answers for the selected canvas, or moving from method guidance into canvas JSON authoring and export without jumping too early into API design. (file: skills/new-api-guide/SKILL.md) +- localized-text-editing: Safely edit APIOps method and canvas labels containing localized or accented text without introducing mojibake, replacement characters, or Windows shell encoding damage. Use when changing `src/data/**` localized JSON, station labels, resource labels, canvas text, or any non-ASCII method content. (file: skills/localized-text-editing/SKILL.md) - canvas-import-json-authoring: Create or review importable CanvasCreator JSON files using schema-first validation, template-specific section coverage, locale-aware section descriptions, and APIOps metadata defaults. Use when generating new filled canvas examples, converting raw notes into import JSON, or validating existing import files before import or export. (file: node_modules/canvascreator/.agents/skills/canvas-import-json-authoring/SKILL.md) - common-contributor-workflow: Follow the standard CanvasCreator contribution flow for scoping, implementation, validation, docs hygiene, and pull request preparation. Use when working on CanvasCreator package changes or package-bundled skill maintenance. (file: node_modules/canvascreator/.agents/skills/common-contributor-workflow/SKILL.md) - export-cli-usage-patterns: Create, review, or troubleshoot CanvasCreator export CLI usage for `scripts/export.js` and `canvascreator-export`, including argument patterns, output-file expectations, and format-specific behavior for `json`, `svg`, `pdf`, and `png` exports. (file: node_modules/canvascreator/.agents/skills/export-cli-usage-patterns/SKILL.md) @@ -21,3 +22,11 @@ A skill is a set of local instructions to follow that is stored in a `SKILL.md` 2. Use `canvas-import-json-authoring` to create or validate importable canvas JSON. 3. Use `export-cli-usage-patterns` to export or troubleshoot exported artifacts. - Context hygiene: Keep context small and avoid loading unnecessary reference material. + +## Localized text and encoding safety + +- Treat all JSON files under `src/data/` as UTF-8. +- Do not rewrite localized or accented text through PowerShell heredocs or ad hoc shell text replacement. On Windows this can silently turn characters such as `ã`, `ç`, `é`, and smart punctuation into mojibake or `?`. +- Prefer `apply_patch` for small exact edits. For scripted edits, use Node with `readFileSync(file, "utf8")` and preserve existing text; when inserting non-ASCII text from a script, use Unicode escapes or another byte-safe source. +- Run `npm.cmd test` on Windows. Plain `npm test` can fail through PowerShell execution policy because it invokes `npm.ps1`. +- The content integrity test fails on known mojibake and replacement patterns including `Ã`, `Â`, `â...`, `�`, `Snum`, `snum`, and `cumprems`. diff --git a/scripts/test-method-content-integrity.mjs b/scripts/test-method-content-integrity.mjs index f4f0cef..13be9a6 100644 --- a/scripts/test-method-content-integrity.mjs +++ b/scripts/test-method-content-integrity.mjs @@ -29,6 +29,104 @@ const findings = []; const warnings = []; const lifecycleStages = new Set(["strategy", "architecture", "design", "delivery", "publishing", "improving"]); +const textQualityRoots = [ + path.join("src", "data", "method"), + path.join("src", "data", "canvas") +]; +const textQualityPatterns = [ + { + name: "Unicode replacement character", + pattern: /\uFFFD/u, + reason: "usually means invalid bytes were decoded with replacement" + }, + { + name: "UTF-8 mojibake lead U+00C3", + pattern: /\u00c3/u, + reason: "usually means UTF-8 text was decoded as Windows-1252 or Latin-1" + }, + { + name: "UTF-8 mojibake lead U+00C2", + pattern: /\u00c2/u, + reason: "usually means a non-breaking space or punctuation was double-decoded" + }, + { + name: "UTF-8 punctuation mojibake", + pattern: /\u00e2[\u0080-\u009f\u20ac\u201a\u201c\u201d\u201e\u02dc\u2019\u2018\u2013\u2014]/u, + reason: "usually means smart quotes, dashes, or zero-width characters were corrupted" + }, + { + name: "question-mark accent replacement", + pattern: /\b[A-Za-z\u00c0-\u017e]*\?[A-Za-z\u00c0-\u017e]*\b/u, + reason: "usually means an accented character was replaced by ? during shell rewriting" + }, + { + name: "known Portuguese corruption Snum", + pattern: /\bSnum\b/u, + reason: "expected text is likely Sem" + }, + { + name: "known Portuguese corruption snum", + pattern: /\bsnum\b/u, + reason: "expected text is likely sem" + }, + { + name: "known Portuguese corruption cumprems", + pattern: /\bcumprems\b/u, + reason: "expected text is likely cumprem" + } +]; + +function listFiles(dirPath) { + return readdirSync(dirPath, { withFileTypes: true }).flatMap((entry) => { + const entryPath = path.join(dirPath, entry.name); + if (entry.isDirectory()) { + return listFiles(entryPath); + } + return [entryPath]; + }); +} + +function collectStringValues(node, keyPath = "", results = []) { + if (typeof node === "string") { + results.push({ keyPath, value: node }); + return results; + } + + if (Array.isArray(node)) { + node.forEach((item, index) => { + collectStringValues(item, `${keyPath}[${index}]`, results); + }); + return results; + } + + if (node && typeof node === "object") { + for (const [key, value] of Object.entries(node)) { + collectStringValues(value, keyPath ? `${keyPath}.${key}` : key, results); + } + } + + return results; +} + +function validateTextEncodingAndMojibake() { + const jsonFiles = textQualityRoots + .flatMap((root) => listFiles(root)) + .filter((filePath) => filePath.endsWith(".json")); + + for (const filePath of jsonFiles) { + const data = readJson(filePath); + for (const { keyPath, value } of collectStringValues(data)) { + for (const { name, pattern, reason } of textQualityPatterns) { + if (pattern.test(value)) { + findings.push( + `Text quality issue in ${filePath}${keyPath ? ` at ${keyPath}` : ""}: ${name} (${reason}).` + ); + } + } + } + } +} + function resolveStationCriteria(stationId, cycleId) { return stationCriteriaJson.byCycle?.[cycleId]?.[stationId] || stationCriteriaJson.default?.[stationId] @@ -445,6 +543,8 @@ for (const locale of Object.keys(localizedCanvasDataJson)) { } } +validateTextEncodingAndMojibake(); + if (findings.length > 0) { console.error("Method content validation failed:"); for (const finding of findings) { diff --git a/skills/localized-text-editing/SKILL.md b/skills/localized-text-editing/SKILL.md new file mode 100644 index 0000000..f0afd7a --- /dev/null +++ b/skills/localized-text-editing/SKILL.md @@ -0,0 +1,48 @@ +--- +name: localized-text-editing +description: Safely edit APIOps method and canvas labels containing localized or accented text without introducing mojibake, replacement characters, or Windows shell encoding damage. Use when changing src/data localized JSON, station labels, resource labels, canvas text, translated method content, or any non-ASCII method wording. +--- + +# Localized Text Editing + +Use this skill when editing APIOps method or canvas text that may contain non-ASCII characters, translated strings, smart punctuation, or locale-specific labels. + +## Rules + +- Treat `src/data/**/*.json` as UTF-8. +- Avoid PowerShell heredocs and ad hoc shell text replacement for localized strings. +- Prefer `apply_patch` for small exact edits when the target text is visible and uncorrupted. +- For scripted edits, use Node with `readFileSync(file, "utf8")` and `writeFileSync(file, textOrJson)`. +- When inserting non-ASCII text from a script, use Unicode escapes or preserve the exact existing value and replace only ASCII substrings. +- Never rewrite whole localized files just to change a few translated strings unless the script is byte-safe and the diff is inspected. + +## Safe Workflow + +1. Inspect the current value with Node, not PowerShell text rendering, when encoding matters. +2. Make the smallest edit that solves the content issue. +3. Scan for known corruption patterns: + +```powershell +node -e "const fs=require('fs'),path=require('path');function walk(d){return fs.readdirSync(d,{withFileTypes:true}).flatMap(e=>{const p=path.join(d,e.name);return e.isDirectory()?walk(p):[p]})}const pats=['Snum','snum','cumprems','n?o'];for(const f of walk('src/data').filter(f=>f.endsWith('.json'))){const s=fs.readFileSync(f,'utf8');for(const p of pats)if(s.includes(p))console.log(f+': '+p)}" +``` + +4. Run `npm.cmd test` on Windows. +5. Review `git diff` for accidental `?`, mojibake, line-ending-only churn, and unrelated localized file rewrites. + +## Failure Patterns + +Treat these as likely corruption unless there is a clear, intentional reason: + +- `U+FFFD` replacement character +- `U+00C3` or `U+00C2` mojibake leads +- `U+00E2` followed by punctuation fragments from smart quotes or dashes +- accent replacement like `n?o`, `prontid?o`, `integra??es` +- known project typos: `Snum`, `snum`, `cumprems` + +## Recovery + +If an edit introduces many `?` characters or mojibake: + +1. Restore the affected file from the index or HEAD if those changes were yours. +2. Reapply only the intended content changes using `apply_patch` or ASCII-only substring replacements. +3. Rerun `npm.cmd test`. diff --git a/skills/localized-text-editing/agents/openai.yaml b/skills/localized-text-editing/agents/openai.yaml new file mode 100644 index 0000000..1208159 --- /dev/null +++ b/skills/localized-text-editing/agents/openai.yaml @@ -0,0 +1,5 @@ +interface: + display_name: Localized Text Editing + short_description: Edit localized APIOps text without encoding damage +policy: + allow_implicit_invocation: true diff --git a/src/data/method/en/labels.stations.json b/src/data/method/en/labels.stations.json index fd2dbcf..47c8b2d 100644 --- a/src/data/method/en/labels.stations.json +++ b/src/data/method/en/labels.stations.json @@ -66,18 +66,18 @@ "station.api-delivery.how_it_works.5": "Record ownership, environments, evidence, known risks, support, monitoring, and readiness status in the Integration Readiness & Operations Canvas.", "station.api-audit.title": "Quality & Readiness Assurance", "station.api-audit.description": "Review release readiness using evidence from design, testing, operations, permissions, monitoring, support, fallback, rollback, risk, and ownership before production use.", - "station.api-audit.why_it_matters": "A formal readiness decision prevents automation solutions from being released without clear evidence, accepted risks, remediation actions, and business and operational ownership.", + "station.api-audit.why_it_matters": "A formal readiness decision prevents capabilities and integrations from being released without clear evidence, accepted risks, remediation actions, and business and operational ownership.", "station.api-audit.apply_in_work": "Use readiness evidence to make an explicit go, conditional-go, or no-go decision before production use.", "station.api-audit.outcomes": "Formal readiness decision", "station.api-audit.outcomes.1": "Evidence, blocking findings, accepted residual risks, and remediation actions reviewed", "station.api-audit.outcomes.2": "Release decision recorded as ready, ready with conditions, remediation required, or not approved", "station.api-audit.outcomes.3": "Business and operational ownership confirmed before release", "station.api-audit.how_it_works": "Review the completed design, test evidence, operating model, permissions, credentials, monitoring, support, fallback, and rollback arrangements.", - "station.api-audit.how_it_works.1": "Verify that known risks, exceptions, unsafe actions, human oversight, compliance requirements, and unresolved assumptions have been addressed or explicitly accepted.", + "station.api-audit.how_it_works.1": "Verify that known risks, exceptions, harmful outcomes, required oversight, compliance requirements, and unresolved assumptions have been addressed or explicitly accepted.", "station.api-audit.how_it_works.2": "Record blocking findings, accepted residual risks, release conditions, and required remediation actions.", "station.api-publishing.title": "Publishing & Enablement", "station.api-publishing.description": "Enable released solutions so users, operators, affected teams, consuming systems, service consumers, and support teams can adopt them safely.", - "station.api-publishing.why_it_matters": "Automation solutions only create value after rollout when affected people and consuming systems understand what changes, how access and operation work, where to get support, and when rollout should pause, expand, or roll back.", + "station.api-publishing.why_it_matters": "Capabilities and integrations only create value after rollout when affected people and consuming systems understand what changes, how access and operation work, where to get support, and when rollout should pause, expand, or roll back.", "station.api-publishing.apply_in_work": "Plan rollout, enablement, support, feedback, and rollback so released solutions can be adopted safely.", "station.api-publishing.outcomes": "Safe rollout and enablement plan", "station.api-publishing.outcomes.1": "Affected people, changed responsibilities, decisions, handoffs, and working practices understood", @@ -91,12 +91,12 @@ "station.monitoring-and-improving.why_it_matters": "Released solutions need evidence to show whether expected outcomes are being achieved, where manual intervention or recovery is still needed, and what lifecycle decision should be made next.", "station.monitoring-and-improving.apply_in_work": "Use operational, user, risk, and value evidence to decide what to improve, expand, restrict, pause, or retire.", "station.monitoring-and-improving.outcomes": "Measured outcome, performance, risk, recovery, and value evidence", - "station.monitoring-and-improving.outcomes.1": "Expected outcomes, run performance, user behavior, risks, support needs, and realized value reviewed", + "station.monitoring-and-improving.outcomes.1": "Expected outcomes, operational performance, user behavior, risks, support needs, and realized value reviewed", "station.monitoring-and-improving.outcomes.2": "Hypothesis assumptions and lifecycle options assessed", "station.monitoring-and-improving.outcomes.3": "Improvement backlog informed by operational, user, risk, and value evidence", "station.monitoring-and-improving.how_it_works": "Outcomes and value: Are the expected process, user, and business outcomes being achieved?", - "station.monitoring-and-improving.how_it_works.1": "Operational performance: What do successful runs, failures, partial completions, exceptions, retries, timeouts, interventions, processing time, waiting time, and cost show?", - "station.monitoring-and-improving.how_it_works.2": "User, risk, and recovery signals: What errors, corrections, unsafe actions, bypassing, mistrust, support needs, fallback events, or recovery failures are occurring?", + "station.monitoring-and-improving.how_it_works.1": "Operational performance: What do availability, reliability, quality, latency, throughput, failures, exceptions, interventions, processing time, waiting time, and cost show?", + "station.monitoring-and-improving.how_it_works.2": "User, risk, and recovery signals: What errors, corrections, harmful outcomes, bypassing, mistrust, support needs, fallback events, or recovery failures are occurring?", "group.sub-stations.title": "Supporting Stations", "group.sub-stations.description": "Supporting stations provide reusable practices, decision points and resources that can be included in different APIOps Cycles routes, including capability, API, integration, data and AI-enabled productization.", "station.user-experience.title": "User Experience - Design APIs with the User in Mind", @@ -370,20 +370,20 @@ "station.budget-and-resource-management.how_it_works": "Define budget and resource management practices that outline the processes for managing budgets and resources for API initiatives.", "cycle.api-productization-cycle.station.api-product-strategy.title": "API Product Strategy - Turn APIs Into Strategic Products", "cycle.api-productization-cycle.station.api-product-strategy.description": "Before building anything, define your API's value, users, and business goals from day one.", - "cycle.api-productization-cycle.station.api-product-strategy.why_it_matters": "Many organizations think of APIs as tech projects, not products. The result? Confused consumers, poor adoption, and wasted effort.\n\nThis station helps you define your API’s purpose, target audience, and success criteria, so teams can deliver APIs that solve real problems.", + "cycle.api-productization-cycle.station.api-product-strategy.why_it_matters": "Many organizations think of APIs as tech projects, not products. The result? Confused consumers, poor adoption, and wasted effort.\n\nThis station helps you define your API's purpose, target audience, and success criteria, so teams can deliver APIs that solve real problems.", "cycle.api-productization-cycle.station.api-product-strategy.apply_in_work": "Provide guidelines and templates for creating API business models, value propositions, and roadmaps.", "cycle.api-productization-cycle.station.api-product-strategy.outcomes": "A straightforward API value proposition and audience", "cycle.api-productization-cycle.station.api-product-strategy.outcomes.1": "Shared language between product, design, and tech", "cycle.api-productization-cycle.station.api-product-strategy.outcomes.2": "A solid pitch or case for funding/approval", - "cycle.api-productization-cycle.station.api-product-strategy.how_it_works": "Explore the customer or partner problem you expect to solve with APIs. Map the stakeholders, ther journeys and outcomes using the Customer Journey canvas.", + "cycle.api-productization-cycle.station.api-product-strategy.how_it_works": "Explore the customer or partner problem you expect to solve with APIs. Map the stakeholders, their journeys, and outcomes using the Customer Journey Canvas.", "cycle.api-productization-cycle.station.api-product-strategy.how_it_works.1": "Define core entities, their attributes, and relationships to create a shared conceptual understanding across journeys and eventually APIs.", "cycle.api-productization-cycle.station.api-product-strategy.how_it_works.2": "Use the API Value Proposition Canvas to capture the supported business tasks and the API consumer pains, gains, and features that shape new or reusable APIs.", - "cycle.api-productization-cycle.station.api-product-strategy.how_it_works.3": "Define the value — for users and the business with the API Business Model canvas to make your API strategy visual, shareable, and easy to validate with your API consumers at the next station.", - "cycle.api-productization-cycle.station.api-consumer-experience.title": "API Consumer Experience - Design for Your API’s Real Users", - "cycle.api-productization-cycle.station.api-consumer-experience.description": "Ensure your API is discoverable, understandable, and usable — before and after launch.", - "cycle.api-productization-cycle.station.api-consumer-experience.why_it_matters": "Great APIs don’t just work — they feel intuitive. Whether your consumer is an internal developer, external partner, or AI agent, their experience determines adoption.\n\nWithout a clear experience plan:\n- Great APIs go unused\n- Teams waste time guessing how to use your API\n- Feedback loops are broken or missing.\n\nThis station helps you see your API through the eyes of its consumers.", - "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works": "Review the existing API Value Proposition Canvas from the API consumer perspective. Keep the supported business tasks stable, and enrich the pain-relieving and gain-enabling features with API consumer concerns so they can guide later design decisions.", - "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works.1": "Use the Customer Journey Canvas for the API consumer journey from discovery and evaluation to onboarding, integration, troubleshooting, and ongoing use.", + "cycle.api-productization-cycle.station.api-product-strategy.how_it_works.3": "Define the value for users and the business with the API Business Model Canvas to make your API strategy visual, shareable, and easy to validate with your API consumers at the next station.", + "cycle.api-productization-cycle.station.api-consumer-experience.title": "API Consumer Experience - Design for Your API's Real Users", + "cycle.api-productization-cycle.station.api-consumer-experience.description": "Ensure your API is discoverable, understandable, and usable before and after launch.", + "cycle.api-productization-cycle.station.api-consumer-experience.why_it_matters": "Great APIs do not just work; they feel intuitive. Whether your consumer is an internal developer, external partner, or AI agent, their experience determines adoption.\n\nWithout a clear experience plan:\n- Great APIs go unused\n- Teams waste time guessing how to use your API\n- Feedback loops are broken or missing.\n\nThis station helps you see your API through the eyes of its consumers.", + "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works": "Reuse and refine the existing API Value Proposition Canvas from the API consumer perspective. Keep the supported business tasks stable, and enrich the pain-relieving and gain-enabling features with API consumer concerns so they can guide later design decisions.", + "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works.1": "Reuse and refine the Customer Journey Canvas for the API consumer journey from discovery and evaluation to onboarding, integration, troubleshooting, and ongoing use.", "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works.2": "Use the resulting journey to improve onboarding, documentation, support, and feedback loops for the API consumer.", "cycle.api-productization-cycle.station.api-consumer-experience.apply_in_work": "Provide guidelines, tools, and feedback mechanisms for understanding, analyzing, and improving internal and external developer and partner experience.", "cycle.api-productization-cycle.station.api-consumer-experience.outcomes": "Identify and prioritize your API consumers", @@ -397,9 +397,9 @@ "cycle.api-productization-cycle.station.api-platform-architecture.outcomes": "Cut redundant APIs and reduce cloud platform costs", "cycle.api-productization-cycle.station.api-platform-architecture.outcomes.1": "Implement consistent governance without heavy top-down control", "cycle.api-productization-cycle.station.api-platform-architecture.outcomes.2": "Design for internal reuse and external scalability", - "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works": "The Business Impact Canvas helps to identify and mitigate risks related to API availability, security, and functionality to support informed architectural decisions.", - "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works.1": "Map the regulatory, compliance, and network locations of API providers and consumers to ensure accessibility and compliance.", - "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works.2": "The Capacity Canvas aligns business transaction patterns, future consumption trends, and technical solutions to ensure API scalability and performance.It provides critical input for scaling decisions and infrastructure planning.", + "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works": "Reuse and refine the Business Impact Canvas to identify and mitigate risks related to API availability, security, and functionality to support informed architectural decisions.", + "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works.1": "Reuse and refine the Locations Canvas to map the regulatory, compliance, and network locations of API providers and consumers for accessibility and compliance decisions.", + "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works.2": "Reuse and refine the Capacity Canvas to align business transaction patterns, future consumption trends, and technical solutions for API scalability and performance. It provides critical input for scaling decisions and infrastructure planning.", "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works.3": "Define and monitor performance metrics (e.g., API calls, latency, error rates) and adoption metrics (e.g., NPS).", "cycle.api-productization-cycle.station.api-design.title": "API Design - Design APIs That Deliver Value", "cycle.api-productization-cycle.station.api-design.description": "Create API designs that are consistent, reusable, and grounded in business intent and shared standards.", @@ -409,8 +409,8 @@ "cycle.api-productization-cycle.station.api-design.outcomes.1": "Reusable and validated API contracts", "cycle.api-productization-cycle.station.api-design.outcomes.2": "Designs aligned with domain models and interaction patterns", "cycle.api-productization-cycle.station.api-design.outcomes.3": "Design traceability to business value", - "cycle.api-productization-cycle.station.api-design.how_it_works": "Define core entities, their attributes, and relationships to create a shared conceptual understanding across APIs.", - "cycle.api-productization-cycle.station.api-design.how_it_works.1": "Use the Interaction Canvas to define how consumers will interact with the API, ensuring it meets their needs and expectations.", + "cycle.api-productization-cycle.station.api-design.how_it_works": "Reuse and refine the Domain Canvas to define core entities, their attributes, and relationships for a shared conceptual understanding across APIs.", + "cycle.api-productization-cycle.station.api-design.how_it_works.1": "Reuse and refine the Interaction Canvas to define how consumers will interact with the API, ensuring it meets their needs and expectations.", "cycle.api-productization-cycle.station.api-design.how_it_works.2": "Apply REST design patterns to create consistent, reusable API contracts that are validated with stakeholders.", "cycle.api-productization-cycle.station.api-design.how_it_works.3": "Apply Event-driven design patterns to create consistent, reusable API contracts that are validated with stakeholders.", "cycle.api-productization-cycle.station.api-design.how_it_works.4": "Apply GraphQL design patterns to create consistent, reusable API contracts that are validated with stakeholders.", @@ -419,7 +419,7 @@ "cycle.api-productization-cycle.station.api-design.how_it_works.7": "Use the API Audit Checklist to ensure the API design meets functional and non-functional requirements, including security, performance, and compliance.", "cycle.api-productization-cycle.station.api-delivery.title": "API Delivery - Deliver Secure and Reliable APIs", "cycle.api-productization-cycle.station.api-delivery.description": "Build, test, and release APIs using modern delivery pipelines and engineering best practices.", - "cycle.api-productization-cycle.station.api-delivery.why_it_matters": "Even the best API designs fail if delivery is inconsistent. This station ensures your APIs are built with quality, tested thoroughly, and deployed reliably — enabling faster iterations and greater confidence.", + "cycle.api-productization-cycle.station.api-delivery.why_it_matters": "Even the best API designs fail if delivery is inconsistent. This station ensures your APIs are built with quality, tested thoroughly, and deployed reliably, enabling faster iterations and greater confidence.", "cycle.api-productization-cycle.station.api-delivery.apply_in_work": "Deliver coding frameworks, libraries, and standards for API implementation. Implement CI/CD pipelines, quality assurance frameworks, and deployment automation tools.", "cycle.api-productization-cycle.station.api-delivery.outcomes": "APIs implemented using tested frameworks and patterns", "cycle.api-productization-cycle.station.api-delivery.outcomes.1": "Reliable and automated CI/CD pipelines", @@ -441,10 +441,10 @@ "cycle.api-productization-cycle.station.api-audit.outcomes.3": "Reduced risk of issues in production", "cycle.api-productization-cycle.station.api-audit.how_it_works": "Conduct audits to ensure APIs meet organizational, technical, and legal standards before release.", "cycle.api-productization-cycle.station.api-audit.how_it_works.1": "Use checklists, linters, and testing tools to verify consistency and conformance with standards.", - "cycle.api-productization-cycle.station.api-audit.how_it_works.2": "Collaborate with governance teams and domain experts to ensure APIs are ready for production.", + "cycle.api-productization-cycle.station.api-audit.how_it_works.2": "Collaborate with governance teams and domain experts to confirm readiness, reusing and refining earlier audit checklist findings instead of restarting the review from scratch.", "cycle.api-productization-cycle.station.api-publishing.title": "API Publishing - Publish APIs with Confidence", "cycle.api-productization-cycle.station.api-publishing.description": "Expose APIs securely and clearly to the right audience with the right documentation and processes.", - "cycle.api-productization-cycle.station.api-publishing.why_it_matters": "Publishing is more than deploying — it’s about discoverability, access, and support. If APIs aren't published correctly, they won’t be used, reused, or secured effectively.", + "cycle.api-productization-cycle.station.api-publishing.why_it_matters": "Publishing is more than deploying; it is about discoverability, access, and support. If APIs are not published correctly, they will not be used, reused, or secured effectively.", "cycle.api-productization-cycle.station.api-publishing.apply_in_work": "Enable APIs to be published to the relevant environment and have clear registration and access mechanisms (e.g., API keys, OAuth, subscription plans) depending on the API consumer segments and security and compliance requirements.", "cycle.api-productization-cycle.station.api-publishing.outcomes": "APIs published in the right environment (private, partner, public)", "cycle.api-productization-cycle.station.api-publishing.outcomes.1": "Clear API onboarding and registration processes", @@ -455,7 +455,7 @@ "cycle.api-productization-cycle.station.api-publishing.how_it_works.2": "Ensure security models, gateway configuration, and legal terms are clear and accessible to consumers.", "cycle.api-productization-cycle.station.monitoring-and-improving.title": "Monitoring and Improving - for API Value", "cycle.api-productization-cycle.station.monitoring-and-improving.description": "Use metrics and feedback to track API performance and drive continuous improvement.", - "cycle.api-productization-cycle.station.monitoring-and-improving.why_it_matters": "API delivery doesn’t stop at launch. Without monitoring, teams can’t improve adoption, performance, or ROI. This station ensures APIs remain useful, secure, and evolving with business needs.", + "cycle.api-productization-cycle.station.monitoring-and-improving.why_it_matters": "API delivery does not stop at launch. Without monitoring, teams cannot improve adoption, performance, or ROI. This station ensures APIs remain useful, secure, and evolving with business needs.", "cycle.api-productization-cycle.station.monitoring-and-improving.apply_in_work": "Set up analytics frameworks to track performance and engagement. Develop feedback loops, analytics tools, and engagement strategies for APIs.", "cycle.api-productization-cycle.station.monitoring-and-improving.outcomes": "Performance and usage metrics defined and tracked", "cycle.api-productization-cycle.station.monitoring-and-improving.outcomes.1": "Developer feedback loops in place", diff --git a/src/data/method/pt/labels.resources.json b/src/data/method/pt/labels.resources.json index 8dd60c6..9acdcb1 100644 --- a/src/data/method/pt/labels.resources.json +++ b/src/data/method/pt/labels.resources.json @@ -85,7 +85,7 @@ "resource.api-testing-best-practices.outcomes.1": "Abordagem normalizada utilizando as boas práticas de teste de API", "resource.api-testing-best-practices.outcomes.2": "Melhoria da implementação das práticas de API relacionadas", "resource.api-testing-best-practices.steps": "Testar a funcionalidade, a segurança e o desempenho das APIs, utilizando ferramentas de teste automatizadas.", - "resource.api-testing-best-practices.steps.1": "Integrar testes funcionais e não funcionais no pipeline CI/CD para garantir que as APIs cumprems normas de qualidade.", + "resource.api-testing-best-practices.steps.1": "Integrar testes funcionais e não funcionais no pipeline CI/CD para garantir que as APIs cumprem normas de qualidade.", "resource.api-testing-best-practices.steps.2": "Utilizar ferramentas de teste automatizadas para validar a funcionalidade, a segurança e o desempenho da API.", "resource.api-testing-best-practices.tips": "Personalize as boas práticas de teste de API ao seu domínio", "resource.api-testing-best-practices.tips.1": "Utilize-o de forma colaborativa entre as funções de negócio e tecnológicas", diff --git a/src/data/method/pt/labels.stations.json b/src/data/method/pt/labels.stations.json index 3bd6f71..431a290 100644 --- a/src/data/method/pt/labels.stations.json +++ b/src/data/method/pt/labels.stations.json @@ -14,7 +14,7 @@ "station.api-product-strategy.how_it_works.3": "Defina o valor - para os utilizadores e para a empresa - com a Canvas do Modelo de Negócio da API para tornar a sua estratégia de API visual, partilhável e fácil de validar com os seus consumidores de API na estação seguinte.", "station.api-consumer-experience.title": "Experiência do consumidor da API - Conceção para os utilizadores reais da sua API", "station.api-consumer-experience.description": "Certifique-se de que a sua API é detetável, compreensível e utilizável - antes e depois do lançamento.", - "station.api-consumer-experience.why_it_matters": "As APIs excelentes não funcionam apenas - elas são intuitivas. Quer o consumidor seja um programador interno, um parceiro externo ou um agente de IA, a sua experiência determina a adoção.\n\nSnum plano de experiência claro:\n- Grandes APIs ficam sem uso\n- As equipas perdem tempo a tentar adivinhar como utilizar a sua API\n- Os ciclos de feedback estão quebrados ou ausentes.\n\nEsta estação ajuda-o a ver a sua API através dos olhos dos seus consumidores.", + "station.api-consumer-experience.why_it_matters": "As APIs excelentes não funcionam apenas - elas são intuitivas. Quer o consumidor seja um programador interno, um parceiro externo ou um agente de IA, a sua experiência determina a adoção.\n\nSem plano de experiência claro:\n- Grandes APIs ficam sem uso\n- As equipas perdem tempo a tentar adivinhar como utilizar a sua API\n- Os ciclos de feedback estão quebrados ou ausentes.\n\nEsta estação ajuda-o a ver a sua API através dos olhos dos seus consumidores.", "station.api-consumer-experience.how_it_works": "Analise o Canvas da Proposta de Valor da API existente sob a perspectiva do consumidor da API. Mantenha as tarefas de negócios suportadas estáveis ​​e enriqueça os recursos que aliviam problemas e possibilitam ganhos com as preocupações do consumidor da API, para que elas possam orientar as decisões de conceção futuras.", "station.api-consumer-experience.how_it_works.1": "Utilize o Canvas do Percurso do Cliente para a jornada do consumidor da API, desde a descoberta e avaliação até a integração, resolução de problemas e uso contínuo.", "station.api-consumer-experience.how_it_works.2": "Utilize a jornada resultante para melhorar a integração, a documentação, o suporte e os ciclos de feedback para o consumidor da API.", @@ -28,7 +28,7 @@ "station.api-platform-architecture.why_it_matters": "Quando as APIs são escalonadas entre equipas, a sua plataforma deve permitir a governação e a reutilização sem bloquear a velocidade. Esta estação mostra como arquitetar APIs para longevidade, segurança e eficiência.", "station.api-platform-architecture.apply_in_work": "Estabelecer uma infraestrutura escalável, segura e compatível com as operações de API. Fornecer orientações sobre as boas práticas de arquitetura.", "station.api-platform-architecture.outcomes": "Corte APIs redundantes e reduza os custos da plataforma de nuvem", - "station.api-platform-architecture.outcomes.1": "Implementar uma governação consistente snum forte controlo do topo para a base", + "station.api-platform-architecture.outcomes.1": "Implementar uma governação consistente sem forte controlo do topo para a base", "station.api-platform-architecture.outcomes.2": "Conceção para reutilização interna e escalabilidade externa", "station.api-platform-architecture.how_it_works": "O Canvas de Impacto no Negócio ajuda a identificar e mitigar os riscos relacionados com a disponibilidade, segurança e funcionalidade da API para apoiar decisões de arquitetura informadas.", "station.api-platform-architecture.how_it_works.1": "Mapear as localizações regulamentares, de conformidade e de rede dos fornecedores e consumidores de API para garantir a acessibilidade e a conformidade.", @@ -165,7 +165,7 @@ "station.scalable-infrastructure.how_it_works": "Conceber a infraestrutura da API para ser escalável e resiliente, utilizando padrões e tecnologias nativos da nuvem.", "station.scalable-infrastructure.how_it_works.1": "Implementar o equilíbrio de carga, o armazenamento em cache e outras técnicas para garantir uma elevada disponibilidade e desempenho. Recolher os requisitos de infraestrutura das equipas de API utilizando o Canvas de Capacidade", "station.scalable-infrastructure.how_it_works.2": "Monitorizar o desempenho e a capacidade da infraestrutura para garantir que esta consegue dar resposta à crescente procura.", - "station.legal-and-compliance.title": "Legal e Conformidade - Garantir que as APIs cumprems normas regulamentares", + "station.legal-and-compliance.title": "Legal e Conformidade - Garantir que as APIs cumprem normas regulamentares", "station.legal-and-compliance.description": "Garanta que as APIs cumprem os requisitos legais e regulamentares, protegendo a sua organização e os seus utilizadores.", "station.legal-and-compliance.why_it_matters": "As APIs devem cumprir as normas legais e regulamentares para proteger a sua organização e os utilizadores. Esta estação fornece ferramentas e diretrizes para garantir que as APIs cumprem os requisitos de conformidade, reduzindo os riscos legais e garantindo a proteção de dados.", "station.legal-and-compliance.apply_in_work": "Fornecer estruturas legais e de conformidade, listas de verificação e ferramentas para garantir a conformidade da API. Assegurar que as equipas compreendem e implementam os requisitos legais na conceção, desenvolvimento e publicação de API.", @@ -240,11 +240,11 @@ "station.ci-cd.outcomes.2": "iterações mais rápidas e redução do tempo de colocação no mercado", "station.ci-cd.outcomes.3": "Melhoria da colaboração e dos ciclos de feedback no desenvolvimento de API", "station.ci-cd.how_it_works": "Utilize pipelines CI/CD para automatizar os processos de construção, teste e disponibilização, garantindo qualidade e rastreabilidade consistentes.", - "station.ci-cd.how_it_works.1": "Integrar testes funcionais e não funcionais no pipeline CI/CD para garantir que as APIs cumprems normas de qualidade.", + "station.ci-cd.how_it_works.1": "Integrar testes funcionais e não funcionais no pipeline CI/CD para garantir que as APIs cumprem normas de qualidade.", "station.ci-cd.how_it_works.2": "Implementar verificações de segurança automatizadas e validações de conformidade no pipeline CI/CD para garantir que as APIs são seguras e compatíveis.", "station.test-automation.title": "Automatização de testes - Garantir a qualidade da API", "station.test-automation.description": "Implementar práticas de teste automatizadas para garantir a qualidade, fiabilidade e desempenho da API.", - "station.test-automation.why_it_matters": "Os testes automatizados são cruciais para garantir que as APIs funcionam corretamente e cumprems normas de qualidade. Esta estação fornece diretrizes para a implementação de práticas de teste automatizado que abrangem testes funcionais, de segurança e de desempenho para APIs.", + "station.test-automation.why_it_matters": "Os testes automatizados são cruciais para garantir que as APIs funcionam corretamente e cumprem normas de qualidade. Esta estação fornece diretrizes para a implementação de práticas de teste automatizado que abrangem testes funcionais, de segurança e de desempenho para APIs.", "station.test-automation.apply_in_work": "Fornecer estruturas de automatização de testes, ferramentas e boas práticas para testes de API. Assegurar que as equipas implementam testes automatizados que abrangem aspectos funcionais, de segurança e de desempenho das APIs.", "station.test-automation.outcomes": "Práticas de teste automatizadas implementadas para APIs", "station.test-automation.outcomes.1": "Testes funcionais, de segurança e de desempenho automatizados", @@ -381,7 +381,7 @@ "cycle.api-productization-cycle.station.api-product-strategy.how_it_works.3": "Defina o valor - para os utilizadores e para a empresa - com a Canvas do Modelo de Negócio da API para tornar a sua estratégia de API visual, partilhável e fácil de validar com os seus consumidores de API na estação seguinte.", "cycle.api-productization-cycle.station.api-consumer-experience.title": "Experiência do consumidor da API - Conceção para os utilizadores reais da sua API", "cycle.api-productization-cycle.station.api-consumer-experience.description": "Certifique-se de que a sua API é detetável, compreensível e utilizável - antes e depois do lançamento.", - "cycle.api-productization-cycle.station.api-consumer-experience.why_it_matters": "As APIs excelentes não funcionam apenas - elas são intuitivas. Quer o consumidor seja um programador interno, um parceiro externo ou um agente de IA, a sua experiência determina a adoção.\n\nSnum plano de experiência claro:\n- Grandes APIs ficam sem uso\n- As equipas perdem tempo a tentar adivinhar como utilizar a sua API\n- Os ciclos de feedback estão quebrados ou ausentes.\n\nEsta estação ajuda-o a ver a sua API através dos olhos dos seus consumidores.", + "cycle.api-productization-cycle.station.api-consumer-experience.why_it_matters": "As APIs excelentes não funcionam apenas - elas são intuitivas. Quer o consumidor seja um programador interno, um parceiro externo ou um agente de IA, a sua experiência determina a adoção.\n\nSem plano de experiência claro:\n- Grandes APIs ficam sem uso\n- As equipas perdem tempo a tentar adivinhar como utilizar a sua API\n- Os ciclos de feedback estão quebrados ou ausentes.\n\nEsta estação ajuda-o a ver a sua API através dos olhos dos seus consumidores.", "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works": "Analise o Canvas da Proposta de Valor da API existente sob a perspectiva do consumidor da API. Mantenha as tarefas de negócios suportadas estáveis ​​e enriqueça os recursos que aliviam problemas e possibilitam ganhos com as preocupações do consumidor da API, para que elas possam orientar as decisões de conceção futuras.", "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works.1": "Utilize o Canvas do Percurso do Cliente para a jornada do consumidor da API, desde a descoberta e avaliação até a integração, resolução de problemas e uso contínuo.", "cycle.api-productization-cycle.station.api-consumer-experience.how_it_works.2": "Utilize a jornada resultante para melhorar a integração, a documentação, o suporte e os ciclos de feedback para o consumidor da API.", @@ -395,7 +395,7 @@ "cycle.api-productization-cycle.station.api-platform-architecture.why_it_matters": "Quando as APIs são escalonadas entre equipas, a sua plataforma deve permitir a governação e a reutilização sem bloquear a velocidade. Esta estação mostra como arquitetar APIs para longevidade, segurança e eficiência.", "cycle.api-productization-cycle.station.api-platform-architecture.apply_in_work": "Estabelecer uma infraestrutura escalável, segura e compatível com as operações de API. Fornecer orientações sobre as boas práticas de arquitetura.", "cycle.api-productization-cycle.station.api-platform-architecture.outcomes": "Corte APIs redundantes e reduza os custos da plataforma de nuvem", - "cycle.api-productization-cycle.station.api-platform-architecture.outcomes.1": "Implementar uma governação consistente snum forte controlo do topo para a base", + "cycle.api-productization-cycle.station.api-platform-architecture.outcomes.1": "Implementar uma governação consistente sem forte controlo do topo para a base", "cycle.api-productization-cycle.station.api-platform-architecture.outcomes.2": "Conceção para reutilização interna e escalabilidade externa", "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works": "O Canvas de Impacto no Negócio ajuda a identificar e mitigar os riscos relacionados com a disponibilidade, segurança e funcionalidade da API para apoiar decisões de arquitetura informadas.", "cycle.api-productization-cycle.station.api-platform-architecture.how_it_works.1": "Mapear as localizações regulamentares, de conformidade e de rede dos fornecedores e consumidores de API para garantir a acessibilidade e a conformidade.", @@ -435,11 +435,11 @@ "cycle.api-productization-cycle.station.api-audit.description": "Valide se as APIs satisfazemos padrões de negócio, conceção e operacionais antes da publicação e exposição.", "cycle.api-productization-cycle.station.api-audit.why_it_matters": "As APIs são produtos de longa duração e devem atender às expectativas de qualidade, consistência e conformidade. A auditoria conecta as decisões de conceção, a implementação e a prontidão operacional a padrões definidos, reduzindo o risco antes da exposição.", "cycle.api-productization-cycle.station.api-audit.apply_in_work": "Estabeleça um processo de auditoria consistente que avalie a prontidão da API em todas as etapas do ciclo de vida usando critérios, evidências e padrões definidos. Garanta que as lacunas sejam identificadas antecipadamente e resolvidas antes da publicação.", - "cycle.api-productization-cycle.station.api-audit.outcomes": "As APIs cumprems normas internas e externas", + "cycle.api-productization-cycle.station.api-audit.outcomes": "As APIs cumprem normas internas e externas", "cycle.api-productization-cycle.station.api-audit.outcomes.1": "Documentação clara das decisões de conceção e implementação da API", "cycle.api-productization-cycle.station.api-audit.outcomes.2": "Segurança, desempenho e conformidade validados", "cycle.api-productization-cycle.station.api-audit.outcomes.3": "Redução do risco de problemas na produção", - "cycle.api-productization-cycle.station.api-audit.how_it_works": "Realizar auditorias para garantir que as APIs cumprems normas organizacionais, técnicas e legais antes da publicação.", + "cycle.api-productization-cycle.station.api-audit.how_it_works": "Realizar auditorias para garantir que as APIs cumprem normas organizacionais, técnicas e legais antes da publicação.", "cycle.api-productization-cycle.station.api-audit.how_it_works.1": "Utilizar listas de controlo, linters e ferramentas de teste para verificar a consistência e a conformidade com as normas.", "cycle.api-productization-cycle.station.api-audit.how_it_works.2": "Colaborar com as equipas de governação e especialistas no domínio para garantir que as APIs estão prontas para produção.", "cycle.api-productization-cycle.station.api-publishing.title": "Publicação de API - Publique APIs com confiança",