Claude Code ਹੁਣ ਵਿਨਾਸ਼ਕਾਰੀ Git Commands ਨੂੰ ਰੋਕਦਾ ਹੈ

Claude Code ਨੇ ਹਾਲ ਹੀ ਵਿੱਚ ਇੱਕ ਨਵਾਂ ਸੁਰੱਖਿਆ ਫੀਚਰ ਜੋੜਿਆ ਹੈ। ਇਹ ਹੁਣ auto mode ਵਿੱਚ ਵਿਨਾਸ਼ਕਾਰੀ git commands ਨੂੰ ਰੋਕਦਾ ਹੈ।

ਕੁਝ ਮਹੀਨੇ ਪਹਿਲਾਂ, ਇੱਕ AI agent ਨੇ ਲਗਭਗ ਮੇਰਾ ਕੰਮ ਡਿਲੀਟ ਕਰ ਦਿੱਤਾ ਸੀ। ਮੈਂ ਉਸਨੂੰ ਪੁਰਾਣੇ ਕੋਡ ਨੂੰ ਦੇਖਣ ਲਈ ਕਿਹਾ ਸੀ। ਉਸਨੇ git reset --hard ਚਲਾ ਦਿੱਤਾ। ਇਸ command ਨੇ ਮੇਰੇ ਸਾਰੇ uncommitted ਬਦਲਾਅ ਖਤਮ ਕਰ ਦਿੱਤੇ। ਮੈਂ ਇੱਕ ਪੂਰਾ ਦਿਨ ਦਾ ਕੰਮ ਗੁਆ ਦਿੱਤਾ।

ਉਦੋਂ ਤੋਂ, ਮੈਂ ਆਪਣੀਆਂ settings ਵਿੱਚ ਮੈਨੂਅਲੀ deny rules ਜੋੜ ਦਿੱਤੇ ਹਨ। ਮੈਂ git reset ਜਾਂ git clean ਵਰਗੀਆਂ commands ਨੂੰ ਆਪਣੀ ਸਿੱਧੀ ਇਜਾਜ਼ਤ ਤੋਂ ਬਿਨਾਂ ਚੱਲਣ ਤੋਂ ਰੋਕਣਾ ਚਾਹੁੰਦਾ ਸੀ।

ਹੁਣ, Claude Code ਇਹ ਕੰਮ ਆਪਣੇ ਆਪ ਕਰਦਾ ਹੈ। ਇਹ ਤੁਹਾਡੇ ਇਰਾਦੇ (intent) ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਲਈ ਇੱਕ safety classifier ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਇਸਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੰਮ ਨੂੰ ਖਤਮ ਕਰਨ ਲਈ ਨਹੀਂ ਕਿਹਾ ਸੀ, ਤਾਂ ਇਹ command ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ।

ਪਹਿਲਾਂ, ਮੈਂ ਆਪਣੇ ਮੈਨੂਅਲ ਨਿਯਮਾਂ ਨੂੰ ਡਿਲੀਟ ਕਰਨ ਬਾਰੇ ਸੋਚਿਆ। ਜੇਕਰ ਟੂਲ ਤੁਹਾਡੇ ਲਈ ਇਹ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ, ਤਾਂ ਵਾਧੂ ਮਿਹਨਤ ਕਿਉਂ ਕਰਨੀ? ਫਿਰ ਮੈਨੂੰ ਅਹਿਸਾਸ ਹੋਇਆ ਕਿ ਮੈਨੂੰ ਉਹਨਾਂ ਨੂੰ ਕਿਉਂ ਰੱਖਣਾ ਚਾਹੀਦਾ ਹੈ।

ਨਵਾਂ ਸੁਰੱਖਿਆ ਫੀਚਰ ਇੱਕ ਅਨੁਮਾਨ (inference) ਹੈ। ਇਹ ਇੱਕ ਮਾਡਲ ਹੈ ਜੋ ਇਹ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੀ ਚਾਹੁੰਦੇ ਹੋ। ਮਾਡਲਾਂ ਤੋਂ ਗਲਤੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਜੇਕਰ ਮਾਡਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ, ਤਾਂ ਸਿਸਟਮ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ ਜਾਂ ਤੁਹਾਡੇ ਬਾਰੇ ਗਲਤ ਫੈਸਲਾ ਲੈ ਸਕਦਾ ਹੈ।

ਮੇਰੇ ਮੈਨੂਅਲ ਨਿਯਮ ਵੱਖਰੇ ਹਨ। ਉਹ deterministic ਹਨ। ਇੱਕ ਨਿਯਮ ਅੰਦਾਜ਼ਾ ਨਹੀਂ ਲਗਾਉਂਦਾ। ਇਹ ਜਾਂ ਤਾਂ command ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਹ ਇੱਕ ਸਖ਼ਤ ਲਕੀਰ ਹੈ ਜੋ ਇਰਾਦੇ ਦੇ ਆਧਾਰ 'ਤੇ ਕਦੇ ਨਹੀਂ ਬਦਲਦੀ।

ਹੁਣ ਮੈਂ ਰੱਖਿਆ ਦੀ ਤਿੰਨ ਪਰਤਾਂ (layers of defense) ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ:

• ਇਰਾਦੇ (intent) ਲਈ classifier। ਇਹ ਤੁਹਾਡੇ ਟੀਚਿਆਂ ਨੂੰ ਸਮਝਦਾ ਹੈ। • ਯਕੀਨੀਕਰਨ ਲਈ ਮੇਰੇ deny rules। ਉਹ ਖਾਸ commands ਲਈ ਇੱਕ ਸਖ਼ਤ ਰੋਕ (backstop) ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। • ਰੋਕਥਾਮ ਲਈ sandbox। ਇਹ agent ਨੂੰ ਤੁਹਾਡੇ project folder ਦੇ ਅੰਦਰ ਰੱਖਦਾ ਹੈ।

ਨਵਾਂ default ਵਧੀਆ ਹੈ, ਪਰ ਇਹ ਸਭ ਕੁਝ ਕਵਰ ਨਹੀਂ ਕਰਦਾ। ਇਹ rm -rf ਨੂੰ ਨਹੀਂ ਰੋਕਦਾ। ਇਹ database wipe ਨੂੰ ਨਹੀਂ ਰੋਕਦਾ। ਇਹ ਤੁਹਾਡੀ main branch 'ਤੇ force-push ਨੂੰ ਨਹੀਂ ਰੋਕਦਾ।

ਸਿਰਫ਼ ਇਸ ਲਈ ਆਪਣੇ ਕਸਟਮ ਸੁਰੱਖਿਆ ਨਿਯਮਾਂ ਨੂੰ ਡਿਲੀਟ ਨਾ ਕਰੋ ਕਿਉਂਕਿ ਕਿਸੇ ਟੂਲ ਨੇ ਇੱਕ ਨਵਾਂ default ਜੋੜ ਦਿੱਤਾ ਹੈ। ਨਵੇਂ default ਨੂੰ ਆਪਣੇ setup ਦੀ ਜਾਂਚ (audit) ਕਰਨ ਦੇ ਕਾਰਨ ਵਜੋਂ ਵਰਤੋ। ਆਪਣੇ ਨਿਯਮਾਂ ਨੂੰ ਬੈਕਅੱਪ ਵਜੋਂ ਰੱਖੋ ਅਤੇ ਆਪਣੇ ਵਾਧੂ ਸਮੇਂ ਦੀ ਵਰਤੋਂ ਉਹਨਾਂ ਖਾਮੀਆਂ ਨੂੰ ਭਰਨ ਲਈ ਕਰੋ ਜੋ ਟੂਲ ਤੋਂ ਰਹਿ ਗਈਆਂ ਹਨ।

Defense in depth ਦਾ ਮਤਲਬ ਪਰਤਾਂ ਨੂੰ ਇੱਕ ਦੂਜੇ ਦੇ ਉੱਪਰ ਰੱਖਣਾ ਹੈ। ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਸਿਸਟਮ ਉਹ ਹੈ ਜਿੱਥੇ ਇੱਕ ਦੀ ਬਜਾਏ ਤਿੰਨ ਵੱਖ-ਵੱਖ ਚੈੱਕ ਗਲਤੀ ਨੂੰ ਰੋਕਦੇ ਹਨ।

Source: https://code.claude.com/docs/en/changelog

Optional learning community: https://t.me/GyaanSetuAi